見出し画像

ユーザフォームを利用したデータ入力

 ユーザーフォームを使うことで、Excelシートに直接入力するよりも見やすく、操作しやすい入力画面を作成できます。
 以下、詳細な手順とポイントを説明します。

  1. ユーザーフォームの作成

 VBE(Visual Basic Editor)を開きます。(Excel の「開発」タブ > 「Visual Basic」)
 VBE のメニューから「挿入」>「ユーザーフォーム」を選択します。これで新しいユーザーフォームが作成されます。

2. 部品の配置

 ツールボックスから必要な部品をユーザーフォームにドラッグ&ドロップで配置します。主な部品は以下のとおりです。

 ラベル (Label): 文字を表示します(例: 「名前:」、「年齢:」)。
 テキストボックス (TextBox): データを入力します。
 コマンドボタン (CommandButton): 処理を実行するボタン(例: 「登録」、「キャンセル」)。
 コンボボックス (ComboBox): 選択肢から選択します。
 リストボックス (ListBox): 複数項目のリストを表示します。

3. 部品のプロパティ設定

 配置した部品を選択し、「プロパティ」ウィンドウで各種設定を行います。重要なプロパティは以下のとおりです。

Name: 部品の名前(VBAコードで使用します)。
Caption: 部品に表示される文字列(例: ボタンの表示名)。
Text: テキストボックスなどに表示される文字列。

4. VBA コードの記述

 部品のイベント(例: ボタンのクリック)に対する処理をVBAコードで記述します。

例:テキストボックスに入力されたデータをセルに書き込む

VBA

Private Sub CommandButton1_Click() ' 登録ボタンのクリックイベント

Dim 名前 As String
名前 = TextBox1.Text ' テキストボックス1の値を「名前」変数に格納

' A1セルに名前を書き込む
ThisWorkbook.Sheets("Sheet1").Range("A1").Value = 名前

' 入力後テキストボックスをクリア
TextBox1.Text = ""

MsgBox "登録が完了しました", vbInformation

End Sub

Private Sub UserForm_Initialize() ' フォームが起動したときのイベント

' コンボボックスに項目を追加する例
ComboBox1.AddItem "男性"
ComboBox1.AddItem "女性"

End Sub

5. ユーザーフォームの表示

Excelシートからユーザーフォームを表示するためのコードを記述します。

例:ボタンをクリックしてユーザーフォームを表示

VBA

Sub ユーザーフォーム表示()
UserForm1.Show ' UserForm1 を表示
End Sub
具体的な例: 商品登録フォーム

ユーザーフォームに「商品名」、「価格」、「数量」のテキストボックスと「登録」、「キャンセル」ボタンを配置します。
「登録」ボタンのクリックイベントで、それぞれのテキストボックスの値をシートの最終行に追加するようにコードを記述します。

ポイント

 部品の名前はわかりやすい名前に変更しておくと、コードが読みやすくなります。
 エラー処理を記述することで、予期せぬエラーを防ぐことができます。
 ユーザーフォームのデザインを工夫することで、使いやすい入力画面を作成できます。

参考情報

 各検索結果で紹介されているサイトも参考になります。特に、Excel VBAのユーザーフォームから入力した値をテーブルに追加する方法 | だいのメモ、 【VBA入門】ユーザーフォームの使い方(テキスト表示、カレンダー) | 侍エンジニアブログ は具体的な例が掲載されており、理解しやすいでしょう。
 上記の手順とポイントを参考に、ユーザーフォームを使ったデータ入力に挑戦してみてください。

いいなと思ったら応援しよう!