教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでフォーム内のリストボックスに複数列のデータを表示する方法

構文

構文は以下の通りです。

With リストボックス名
    .ColumnCount = 列数
    .List = シート名.Range("データ範囲").Value
End With

解説

リストボックス名.ColumnCountは、リストボックスに表示する列数を指定します。1列なら1、2列なら2とします。リストボックス名.Listは、リストボックスに表示するデータを配列形式で設定します。配列はシートの指定したセル範囲の値を利用します。

プログラミング例

具体的なプログラミング例を紹介します。

Private Sub ユーザーフォーム_表示()
    ' リストボックスにデータを表示
    With リストボックス1
        ' 列数を2に設定
        .ColumnCount = 2
        ' シート「データ」の範囲A1:B10のデータをリストにセット
        .List = シート1.Range("A1:B10").Value
    End With
End Sub

上記のプログラムは、ColumnCount = 2によって、2列のデータが表示されるように設定しています。シート1.Range("A1:B10").Valueで、シート上のデータ範囲 A1:B10 から値を取得し、それをリストボックスに表示します。

まとめ

フォーム内のリストボックスに複数列のデータを表示する方法は、ColumnCountで列数を設定し、Listにシートの範囲を指定することで簡単に実現できます。この方法を使うと、シートのデータをそのままリストボックスに表示できるので、データ入力や選択の際に非常に便利です。