OfficeType

VBA~ユーザーフォームのリストボックスのリストにシートの表を指定しよう~Excel

ユーザーフォームのリストボックスのリストにシートの表を指定したい場合は、ColumnCountプロパティでリストボックスの列数を指定し、RowSourceプロパティで表の範囲を指定します。

インデックス番号はリストの上から0,1,2・・・となります。データが選択されていない場合は-1を返します。

書き方(ColumnCountプロパティ)

オブジェクト名.ColumnCount = 列数

書き方(RowSourceプロパティ)

オブジェクト名.RowSource = "セル範囲"

オブジェクト名はユーザーフォームのオブジェクト名と、リストボックスのオブジェクト名を指定します。オブジェクト名の確認方法は作成したユーザーフォームファイルをクリックするとユーザーフォームが表示されます。ユーザーフォーム全体を選択するとプロパティウィンドウにオブジェクト名という項目があるので、それがユーザーフォームのオブジェクト名になります。次にリストボックスを選択すると同じようにリストボックスのオブジェクト名が確認できます。プロパティウィンドウが表示されていない場合はメニューの表示からプロパティウィンドウをクリックすると表示されます。

UserForm1というユーザーフォームを作成し、ListBox1というリストボックスを設定した場合、下のコードを実行するとリストボックスのリストがSheet1のセルA1からセルB3の範囲に設定されます。

Sub test1()

Load UserForm1
UserForm1.ListBox1.ColumnCount = 2
UserForm1.ListBox1.RowSource = "Sheet1!A1:B3"
UserForm1.Show

End Sub

image-01

image-02