HOME > 即効テクニック > Excel VBA > ユーザーフォーム関連のテクニック > コンボボックスのリストを複数列表示する

コンボボックスのリストを複数列表示する|Excel VBA

ユーザーフォーム関連のテクニック

コンボボックスのリストを複数列表示する

(Excel 97/2000/2002/2003/2007/2010/2013/2016)

コンボボックスのリストには、複数の列を表示することが可能です。
次のサンプルでは、コンボボックスに2列のリストを表示します。
フォームのInitializeイベントのイベントプロシージャに処理を記述します。

TextColumnプロパティに2を指定しているため、ドロップダウンリストからデータを選択するとコンボボックスには2列目のデータを表示します。この値はTextプロパティで取得できます。
また、BoundColumnプロパティに1を指定しているため、コンボボックスのValueプロパティでは1列目の値を取得できます。

コンボボックスでデータを選択し、同じフォーム上に配置したコマンドボタン(CommandButton1)をクリックして表示されるメッセージを確認してください。

Private Sub UserForm_Initialize()
    Dim myArray() As Variant
    Dim i As Long
    
    ReDim myArray(9, 1)
    For i = 1 To 10
        '1列めの項目
        myArray(i - 1, 0) = i
        '2列め項目
        myArray(i - 1, 1) = "データ" & i
    Next i
    
    With ComboBox1
        .ColumnCount = 2    '表示列数の設定
        .TextColumn = 2     '表示列の設定
        .BoundColumn = 1    '値として取得する列の設定
        .List() = myArray() 'リスト項目の設定
    End With
End Sub

Private Sub CommandButton1_Click()
    MsgBox "Textプロパティ : " & ComboBox1.Text & vbCrLf & _
           "Valueプロパティ: " & ComboBox1.Value
End Sub