構文
構文は以下の通りです。
リストボックス名.RowSource = シート名.Range(セル範囲).CurrentRegion.Address
解説
RowSourceは、フォーム内のリストボックスに表示するデータの範囲を設定します。シート名.Range(セル範囲)は、データの開始セルを指定します。このセルから、周囲のデータが自動的に範囲として認識されます。CurrentRegionは、指定したセルを中心に連続したデータが存在する範囲を自動的に選択します。Addressは、選択した範囲のセルのアドレスを取得します。このアドレスをリストボックスに表示させます。
プログラミング例
具体的なプログラミング例を紹介します。
Private Sub UserForm_Initialize()
' データを表示するリストボックスの設定
ListBox1.RowSource = Sheet1.Range("A1").CurrentRegion.Address
' リストボックスに表示される範囲を確認
MsgBox "表示される範囲は: " & Sheet1.Range("A1").CurrentRegion.Address
End Sub
' データを表示するリストボックスの設定
ListBox1.RowSource = Sheet1.Range("A1").CurrentRegion.Address
' リストボックスに表示される範囲を確認
MsgBox "表示される範囲は: " & Sheet1.Range("A1").CurrentRegion.Address
End Sub
上記のプログラムは、ListBox1.RowSourceにSheet1.Range("A1").CurrentRegion.Addressを設定して、セルA1を基点とする連続したデータをリストボックスに表示します。MsgBoxで設定された範囲を確認できるため、コードの動作を視覚的に確認することができます。
まとめ
RowSourceを使って、リストボックスに表示するセル範囲をコードで指定できます。CurrentRegionを使用すると、指定したセルを基点にデータの範囲を自動で取得できるため、効率的に複数のセルをリストに表示できます。リストボックスに自動でセル範囲を表示する実用的な方法です。