UserForm の基本
Excel VBAで「ユーザーに入力画面を用意したい」「ボタンやテキストボックスを使って操作したい」といった場面では UserForm を使います。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。
基本の考え方
- UserFormとは?
Excel上に「入力画面」を作れる機能。テキストボックス、コンボボックス、ボタンなどを配置できる。 - 用途:
- データ入力フォーム
- 検索画面
- 設定ダイアログ
- 流れ:
- VBAエディタで「挿入 → UserForm」を選ぶ。
- コントロール(TextBox, CommandButtonなど)を配置。
- コードを書いて動きを定義。
UserForm1.Showで表示。
テンプレ1:UserFormを表示する基本コード
Sub ShowMyForm()
UserForm1.Show
End Sub
VB- ポイント:
UserForm1はフォームの名前。Showメソッドで画面を表示。
テンプレ2:テキストボックスの値を取得
UserFormに TextBox1 と CommandButton1 を配置した例。
Private Sub CommandButton1_Click()
Dim inputValue As String
inputValue = TextBox1.Value
MsgBox "入力された値は " & inputValue & " です"
End Sub
VB- ポイント:
- ボタンを押すとテキストボックスの値を取得。
TextBox1.Valueで入力値を参照。
テンプレ3:シートに書き戻す
UserFormに TextBox1 と CommandButton1 を配置。
Private Sub CommandButton1_Click()
Dim ws As Worksheet: Set ws = Worksheets("Data")
ws.Range("A1").Value = TextBox1.Value
MsgBox "シートに書き込みました!"
End Sub
VB- ポイント:
- 入力値をシートのセルに書き戻す。
- データ入力フォームとして利用可能。
テンプレ4:コンボボックスにリストを設定
UserFormに ComboBox1 を配置。
Private Sub UserForm_Initialize()
ComboBox1.AddItem "東京"
ComboBox1.AddItem "大阪"
ComboBox1.AddItem "名古屋"
End Sub
Private Sub CommandButton1_Click()
MsgBox "選択された都市は " & ComboBox1.Value & " です"
End Sub
VB- ポイント:
- フォームが開いたときにリストを設定。
- 選択された値を取得できる。
テンプレ5:フォームを閉じる
Private Sub CommandButton2_Click()
Unload Me
End Sub
VB- ポイント:
Unload Meでフォームを閉じる。- 「キャンセル」ボタンなどに使う。
例題で練習
'例1:フォームを表示
Sub Example1()
ShowMyForm
End Sub
'例2:入力値を取得
' → UserFormのボタンにコードを記述
'例3:シートに書き戻す
' → UserFormのボタンにコードを記述
'例4:コンボボックスにリストを設定
' → UserForm_Initialize にコードを記述
'例5:フォームを閉じる
' → 「閉じる」ボタンにコードを記述
VB初心者向けポイント
- UserFormは「入力画面」 → ユーザーに優しい操作を提供できる。
- コントロールの名前を意識 → TextBox1, ComboBox1 など。
- イベント駆動型 → ボタンを押したとき、フォームを開いたときにコードが動く。
- シートとの連携が基本 → 入力値をシートに書き戻す、シートから読み込む。
👉 この「UserForm基本テンプレ」を覚えておけば、Excel VBAで 入力フォームやダイアログを簡単に作成 できるようになります。
