コンボボックスの基本
Excel VBAで「選択肢から選んでもらう」場面では UserFormのコンボボックス(ComboBox) を使います。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。
基本の考え方
- ComboBoxとは?
ユーザーが「入力」または「選択」できるドロップダウンリスト。 - 用途:
- 都市や商品などの選択肢を提示。
- シートのデータをリスト化して選択。
- 入力ミスを防ぐ。
- 流れ:
- VBAエディタで「挿入 → UserForm」を選ぶ。
- UserFormに ComboBox と CommandButton を配置。
- フォーム初期化時に選択肢を設定。
- ボタンを押したときに選択値を取得。
テンプレ1:固定リストを設定
UserFormに ComboBox1 と CommandButton1 を配置。
Private Sub UserForm_Initialize()
ComboBox1.AddItem "東京"
ComboBox1.AddItem "大阪"
ComboBox1.AddItem "名古屋"
End Sub
Private Sub CommandButton1_Click()
MsgBox "選択された都市は " & ComboBox1.Value & " です"
End Sub
VB- ポイント:
- フォームを開いたときにリストを設定。
ComboBox1.Valueで選択値を取得。
テンプレ2:シートのデータをリスト化
Private Sub UserForm_Initialize()
Dim ws As Worksheet: Set ws = Worksheets("Data")
Dim lastRow As Long: lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Dim i As Long
For i = 2 To lastRow
ComboBox1.AddItem ws.Cells(i, 1).Value
Next i
End Sub
VB- ポイント:
- シート「Data」のA列の値をコンボボックスに追加。
- データベース的に使える。
テンプレ3:選択値をシートに書き戻す
Private Sub CommandButton1_Click()
Dim ws As Worksheet: Set ws = Worksheets("Result")
ws.Range("B2").Value = ComboBox1.Value
MsgBox "選択内容をシートに保存しました"
End Sub
VB- ポイント:
- 選択された値をシートに書き戻す。
テンプレ4:選択肢をクリアして再設定
Private Sub CommandButton2_Click()
ComboBox1.Clear
ComboBox1.AddItem "りんご"
ComboBox1.AddItem "みかん"
ComboBox1.AddItem "バナナ"
End Sub
VB- ポイント:
Clearでリストを初期化。- 新しい選択肢を再設定。
テンプレ5:選択肢を動的に変更(条件付き)
Private Sub CommandButton3_Click()
ComboBox1.Clear
If Worksheets("Data").Range("C1").Value = "フルーツ" Then
ComboBox1.AddItem "りんご"
ComboBox1.AddItem "みかん"
Else
ComboBox1.AddItem "にんじん"
ComboBox1.AddItem "キャベツ"
End If
End Sub
VB- ポイント:
- 条件によって選択肢を切り替える。
例題で練習
'例1:固定リストを設定
' → UserForm_Initialize にコードを記述
'例2:シートのデータをリスト化
' → UserForm_Initialize にコードを記述
'例3:選択値をシートに書き戻す
' → CommandButton1_Click にコードを記述
'例4:選択肢をクリアして再設定
' → CommandButton2_Click にコードを記述
'例5:条件によって選択肢を変更
' → CommandButton3_Click にコードを記述
VB初心者向けポイント
- AddItemで選択肢追加 →
ComboBox1.AddItem "東京"。 - Clearでリスト初期化 → 再設定に便利。
- Valueで選択値取得 → シートに書き戻すときに使う。
- UserForm_Initializeで初期化 → フォームを開いたときにリストを準備。
- シートデータをリスト化 → 実務でよく使うパターン。
👉 この「コンボボックス基本テンプレ」を覚えておけば、Excel VBAで 選択式の入力フォームを作り、ユーザーにわかりやすく安全な入力方法 を提供できます。
