Excel VBA 逆引き集 | コンボボックス

Excel VBA
スポンサーリンク

コンボボックスの基本

Excel VBAで「選択肢から選んでもらう」場面では UserFormのコンボボックス(ComboBox) を使います。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。


基本の考え方

  • ComboBoxとは?
    ユーザーが「入力」または「選択」できるドロップダウンリスト。
  • 用途:
    • 都市や商品などの選択肢を提示。
    • シートのデータをリスト化して選択。
    • 入力ミスを防ぐ。
  • 流れ:
    1. VBAエディタで「挿入 → UserForm」を選ぶ。
    2. UserFormに ComboBoxCommandButton を配置。
    3. フォーム初期化時に選択肢を設定。
    4. ボタンを押したときに選択値を取得。

テンプレ1:固定リストを設定

UserFormに ComboBox1CommandButton1 を配置。

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で 選択式の入力フォームを作り、ユーザーにわかりやすく安全な入力方法 を提供できます。

タイトルとURLをコピーしました