教えて!ExcelVBA!

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

【ExcelVBA フォーム&コントロール】リストボックスに複数列のデータを表示する方法を教えて!

構文

構文は以下の通りです。

リストボックス名.List = 表示するデータ範囲

リストボックスに表示されるデータを管理するには、Listプロパティを使用します。Listプロパティには、データを格納するための二次元配列を指定できます。表示するデータ範囲には、リストボックスに表示する実際のデータが入る領域を指定します。これは通常、ワークシート上のセル範囲や配列になります。例えば Worksheets("Sheet1").Range("A1:B10").Value のように、シート名、セル範囲を指定します。

使い方

具体的な使い方を紹介します。

Private Sub UserForm_Initialize()
    Me.ListBox1.ColumnCount = 2 ' 列数を設定
    Me.ListBox1.List = Worksheets("Sheet1").Range("A1:B10").Value ' データを表示
End Sub

上記は、フォームが初期化される際にリストボックスにデータが表示されます。

プログラミング例

以下に、プログラミング例を紹介します。

Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim dataRange As Range
    ' 対象のワークシートを取得
    Set ws = Worksheets("Sheet1")
    ' データの最終行を取得
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    ' データ範囲を指定
    Set dataRange = ws.Range("A1:B" & lastRow)
    ' 列数を設定
    Me.ListBox1.ColumnCount = 2
    ' データを表示
    Me.ListBox1.List = dataRange.Value
End Sub

この例では、データの最終行を動的に取得し、その範囲をリストボックスに表示します。

まとめ

リストボックスに複数列のデータを表示するには、Listプロパティを使用します。リストボックスの列数を設定し、対象のデータ範囲を指定することで、効果的に複数列のデータを表示できます。是非活用してください。