構文
構文は以下の通りです。
リストボックス名.RowSource = リストのセル範囲
解説
リストボックスにデータを表示するには、RowSourceプロパティを使用します。このプロパティは、リストボックスに表示するデータのソース(取得元)を指定します。リストのセル範囲には、データを取得するセル範囲を指定します。例えば、"Sheet1!A1:B10"はSheet1のA1からB10までのセル範囲を指します。
使い方
具体的な使い方を紹介します。
Private Sub UserForm_Initialize()
' フォームが初期化されたときに実行されるイベント
' リストボックスにデータをセット
ListBox1.RowSource = "Sheet1!A2:A100"
End Sub
' フォームが初期化されたときに実行されるイベント
' リストボックスにデータをセット
ListBox1.RowSource = "Sheet1!A2:A100"
End Sub
上記は、あるシートに生徒の名前が記載されていて、それをリストボックスに表示したい場合の例です。この例では、"Sheet1"というシートのA2からA100の生徒の名前がリストボックスに表示されます。
プログラミング例
以下に、プログラミング例を紹介します。
1.複数列のデータを表示する場合(データ件数が固定)
Private Sub UserForm_Initialize()
' フォームが初期化されたときに実行されるイベント
' リストボックスに複数列のデータをセット
ListBox1.RowSource = "Sheet1!A1:B100"
End Sub
' フォームが初期化されたときに実行されるイベント
' リストボックスに複数列のデータをセット
ListBox1.RowSource = "Sheet1!A1:B100"
End Sub
この例では、"Sheet1"というシートのA1からB100のデータがリストボックスに表示されます。
2.複数列のデータを表示する場合(データ件数が可変)
Private Sub UserForm_Initialize()
' フォームが初期化されたときに実行されるイベント
' リストボックスに複数列のデータをセット(データ件数が可変)
Dim lastRow As Long
lastRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
ListBox1.RowSource = "Sheet1!A1:B" & lastRow"
End Sub
' フォームが初期化されたときに実行されるイベント
' リストボックスに複数列のデータをセット(データ件数が可変)
Dim lastRow As Long
lastRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
ListBox1.RowSource = "Sheet1!A1:B" & lastRow"
End Sub
この例では、"Sheet1"というシートのA列からB列までのデータが入力されている範囲をリストボックスに表示します。
まとめ
RowSourceプロパティは、リストボックスにデータを簡単に表示するための便利な手段です。特定のセル範囲を指定するだけで、リストボックスがデータを自動的に取得して表示することができ、データ管理が容易になります。是非活用してください。