リストボックスにセル範囲のデータを設定する方法
リストボックスにワークシートに作成されたリストを設定するには、ListBox【リストボックス】コントロールオブジェクトのRowSourse【ロウソース】プロパティを使用します。
RowSourse【ロウソース】プロパティ
リストボックスに表示するリストのセル範囲を指定するには、ListBox【リストボックス】コントロールオブジェクトのRowSourse【ロウソース】プロパティを使用します。
RowSourse【ロウソース】プロパティの書式と設定値の説明
オブジェクト.RowSourse= セル範囲
- オブジェクト(必須)
リストを表示するListBox【リストボックス】オブジェクトのオブジェクト名を指定します。 - セル範囲
リストのセル範囲をA1形式のアドレスで設定します。(例)“sheet1!” & Raneg(“A1:A10”).Addresssheet1のA1セル~A10セルのセル範囲を指定しています。
シート「リスト」に作成したリストをListBox1に設定するコードと解説
Private Sub UserForm_Initialize() Dim lastrow As Long lastrow = Sheets("リスト").Cells(Rows.Count, 1).End(xlUp).Row ListBox1.RowSourse = "リスト!" & Range("A1", "A" & lastrow).Address End Sub
ユーザーフォームが開く直前に実行されるUserFrom【ユーザフォーム】モジュールのInitalize【イニシャライズ】イベントプロシージャーにコードを記述します。
2行目【Dim lastrow As Long】
リストがあるシート「リスト」のリスト範囲の最終行番号を格納する変数「lastrow」を長整数型(Long)で指定します。
3行目【lastrow = Sheets(“リスト”).Cells(Rows.Count, 1).End(xlUp).Row】
リストがあるシート「リスト」のA列のセルをRows.Count【ロウズカウント】プロパティでセルの最終行番号を参照し、End【エンド】プロパティの引数をxlUp【エックスエルアップ】で上方向に指定し
セルの最終行から上方向にデータが入力されている終端セルを参照してRow【ロウ】プロパティで参照した行の行番号を取得し、変数「lastrow」に代入します。
4行目【ListBox1.RowSourse = “リスト!” & Range(“A1”, “A” & lastrow).Address】
ListBox【リストボックス】コレクションオブジェクトのRowSourse【ロウソース】プロパティを使用して
リストがあるワークシートのセル範囲を指定します。設定値は範囲のアドレスをA1形式で設定する必要があるのでAddress【アドレス】プロパティを使用してセル範囲のアドレスを設定します。
実行結果
リストボックスに複数列のワークシートのリストを設定する方法
複数列のリストボックスを作成するには、ListBox【リストボックス】コントロールオブジェクトの
ColumnCount【カラムカウント】プロパティを使用して、リストボックス内の列数を指定します。
セルのリストの1行目を列見出しとしてリストボックスに表示する場合は、ListBox【リストボックス】コントロールオブジェクトのColumnHeads【カラムヘッダーズ】プロパティにTrueを設定します。
リスト内の列の幅を設定するには、ListBox【リストボックス】コントロールオブジェクトのColumnWidths【カラムワイズ】プロパティを使用して列の幅をポイント単位で指定します。
ColumnCount【カラムカウント】プロパティ
リストボックス内に列を設定するには、ListBox【リストボックス】コントロールオブジェクトの
ColumnCount【カラムカウント】プロパティを使用します。
ColumnCount【カラムカウント】プロパティの書式と設定値の説明
オブジェクト.ColumnCount = 設定値
- オブジェクト(必須)
列を設定するListBox【リストボックス】コントロールオブジェクトを指定します。 - 設定値(必須)
列数を整数値で指定します。
ColumnHeads【カラムヘッダーズ】プロパティ
リストボックス内の先頭行に列見出しを設定するには、ListBox【リストボックス】コントロールオブジェクトのColumnHeads【カラムヘッダーズ】プロパティを使用します。
ColumnHeads【カラムヘッダーズ】プロパティの書式と設定値の説明
オブジェクト.ColumnHeads = 設定値
- オブジェクト(必須)
列見出しを設定するListBox【リストボックス】コントロールオブジェクトを指定します。 - 設定値(必須)
設定値 内容 True 列見出しを設定します。 False 列見出しを設定しません。(既定値) ※列見出しとして表示される内容はRowSourse【ロウソース】プロパティに設定したセル範囲の1行上のセルのデータになります。
ColumnWidths【カラムワイズ】プロパティ
リストボックス内の列の幅を設定するには、ListBox【リストボックス】コントロールオブジェクトのColumnWidths【カラムワイズ】プロパティを使用します。
ColumnWidths【カラムワイズ】プロパティの書式と設定値の説明
オブジェクト.ColumnWidths = 設定値
- オブジェクト(必須)
列幅を設定するListBox【リストボックス】コントロールオブジェクトを指定します。 - 設定値(必須)
列の幅をポイント単位の数値で1列目から「;」セミコロンで区切って、文字列型(”ダブルクォーテーションで囲む)で設定します。※1ポイントは約0.35ミリで、セルの行の高さの単位と同じです。
リストボックスに複数列のワークシートのリストを設定する例
上記のリストシートのデータをリストボックスに表示するコード例
Private Sub UserForm_Initialize() Dim lastrow As Long lastrow = Sheets("リスト").Cells(Rows.Count, 1).End(xlUp).Row With ListBox1 .ColumnHeads = True .ColumnCount = 3 .ColumnWidths = "40;50;50" .RowSource = "リスト!" & Range("A2", "C" & lastrow).Address End With End Sub
実行結果
リストボックスのプロパティ一覧は「リストボックスのプロパティ」をご覧ください。
以上で、リストボックスにセル範囲のデータを設定する方法につての解説を終了します。ありがとうございました。