![見出し画像](https://assets.st-note.com/production/uploads/images/166090232/rectangle_large_type_2_fce71d128eccc3d925e624842fdd22cd.jpeg?width=1200)
ユーザフォームを利用したデータ入力
ユーザーフォームを使うことで、Excelシートに直接入力するよりも見やすく、操作しやすい入力画面を作成できます。
以下、詳細な手順とポイントを説明します。
ユーザーフォームの作成
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入門】ユーザーフォームの使い方(テキスト表示、カレンダー) | 侍エンジニアブログ は具体的な例が掲載されており、理解しやすいでしょう。
上記の手順とポイントを参考に、ユーザーフォームを使ったデータ入力に挑戦してみてください。