Windows 10 Pro_x64 + Excel2013_x86 VBA の ComboBox で複数の列を表示する
Windows 10 Pro_x64 + Excel2013_x86 VBA の ComboBox で複数の列を表示する
Excel VBA のUserForm上のComboBoxに複数列を表示したい時のメモ
普段はデータベースからひらってきたデータを表示することが多いんだけど
最小限必要なコードを張りつけてみる
・UserFormを1個追加する
・UserFormの上にComboBoxを1個追加する
・UserFormの上にCommandButtonを2個追加する
・CommandButton1をクリックしたときにComboBox1にデータを追加する
・CommandButton2をクリックしたときにComboBox1で選択されている
データを表示する
サンプルコード
Option Explicit Private Sub CommandButton1_Click() Dim varArry() As Variant ReDim varArry(3, 2) varArry(0, 0) = "01" varArry(0, 1) = "北海道" varArry(1, 0) = "02" varArry(1, 1) = "青森県" varArry(2, 0) = "03" varArry(2, 1) = "岩手県" ' ComboBox1.Clear ' With ComboBox1 .ColumnCount = 2 '1行に2個表示 .TextColumn = 2 '2個目のデータを表示 .BoundColumn = 1 '※1参照 .ColumnWidths = "30, 50" 'カラムの幅 .List() = varArry() 'リスト項目の設定 End With End Sub Private Sub CommandButton2_Click() ' Dim strCode As String Dim strName As String ' If ComboBox1.ListIndex >= 0 Then strCode = Trim(ComboBox1.Column(0, Me.ComboBox1.ListIndex)) strName = Trim(ComboBox1.Column(1, Me.ComboBox1.ListIndex)) End If ' Debug.Print strCode, strName ' End Sub
※1
0 コントロールに ListIndex プロパティの値を割り当てます。
1 以上指定した列からコントロールに値を割り当てます。このプロパティを
使用するとき、列には、1 から番号が付けられます (既定)。