リストボックスの使い方、リストボックスにリストを追加する方法、UserForm_Initializeで簡単初期設定 05回

リストボックスの使い方、UserForm_Initializeで簡単初期設定

ユーザーフォーム講座 動画編 05回
リストボックスの使い方リストボックスにリストを追加する方法、UserForm_Initializeで簡単初期設定

動画でExcel リストボックスの使い方、UserForm_Initializeで簡単初期設定

リストボックスにリストを追加する方法、UserForm_Initializeで簡単初期設定

動画版「ユーザーフォーム講座基礎編第5回」です。
この動画では、ユーザーフォームのリストボックスについて解説しています。リストボックスへデータを表示するには、リストボックスへセル範囲をRowSourceプロパティで指定したり、Addltemメソッド、Listプロパティなどを利用することができます。 RowSourceプロパティは、VBAコードでたった1行で書くことも可能です。 データの個数が変化する場合などは、コードにAddltemメソッドとFor~Nextステートメントを使って書く方が、自動的に取得するので便利です。 また配列を使ってリスト項目を取得する方法も解説しています。
(サンプルファイルは、こちらです。 リストボックスの使い方、UserForm_Initializeで簡単初期設定、サンプル05回

マクロ動画 リストボックスの使い方、UserForm_Initializeで簡単初期設定

https://youtu.be/f-CPkVTYmAU

リストボックスをユーザーフォームに追加

コントロールの中からリストを選び、リストは右から4番目左から5番目にあります。
リストボックスというのがそれです。 これを挿入しましょう。サイズは後から変更できます。

リストボックスにリストを追加する方法1

リストボックスにラベルが必要なら、 先にラベルを入れておいてもよいかと思います。

リストボックスにリストを追加する方法2

プロパティウィンドウで、 リストボックスのオブジェクト名を 変更します。List_商品名にしておきます。

リストボックスにリストを追加する方法3

リストボックスにリストを追加する方法

リストにしたい項目がもうすでにシート上にある場合は、 その範囲を指定してやることで、 リストに追加するということができます。
そのためにプロパティの中にRowSourceローソースというプロパティがあります。

リストボックスにリストを追加する方法4

RowSourceプロパティにデータ範囲を"Sheet1!B2:B9"と記入しました。
このRowSourceプロパティにデータ範囲を指定する方法がリストボックスにリストを追加する1番目の方法です。
記入したとたんにリストボックスにリスト項目が表示されます。

リストボックスにリストを追加する方法5

フォームにコマンドボタンを追加しオブジェクト名を変更しました。

リストボックスにリストを追加する方法6
Private Sub btn_close_Click()
     Unload Me
 End Sub

フォームを実行したところです。

リストボックスにリストを追加する方法7

AddItemメソッドを使ってリスト項目を追加する

2番目の方法は、AddItemメソッドを使ってリスト項目を追加する方法です。
これは、UserForm_Initializeコードに記述してやります。

リストボックスにリストを追加する方法8

UserForm_Initializeをコードに挿入するには、それにはフォームの何もないところで右クリックして、 コードの表示をクリックします。
次にプロシージャーボックスをクリックして ユーザーフォームのイニシャライズを挿入してやります。

リストボックスにリストを追加する方法9

その中に、With構文を使って、以下のコードを記述します。RowSourceに書いたセル範囲は消しておきます。

リストボックスにリストを追加する方法10
     Private Sub UserForm_Initialize()
         With List_商品名
         .AddItem "アスタキサンチン"
         .AddItem "プロテイン"
         .AddItem "セサミン"
         End With
     End Sub 
    

For文を使って対象範囲の値を全部AddItemに入れる

1つずつアイテムを追加するのは、面倒ですので、For文を使って書き換えましょう。
これがリストボックスにアイテムを追加する3番目の方法です。
RowSourceに記述した場合と実行したときの状態は変わりませんので、他にも設定してみましょう。
With List_商品名の中でリストに関することが他にも設定できます。

リストボックスにリストを追加する方法11
Private Sub UserForm_Initialize()
     Dim i As Long, LastRow As Long
     Dim LastRow As Long
     LastRow = Range("B" & Cells.Rows.Count).End(xlUp).Row
     With List_商品名
          .ForeColor = RGB(0, 0, 255)
         For i = 2 To LastRow
             .AddItem Range("B" & i).Value
         Next i
     End With
 End Sub

フォームを実行すると、リストにFor文で取得した項目が表示され、文字色を青に設定しているので、反映されています。

リストボックスにリストを追加する方法12

リストボックスにリストを配列で追加する方法

最後の方法です。このList_商品名に配列で 商品を入れてしまおうというコードです。
たった1行のコードで追加することができます。

リストボックスにリストを追加する方法13

このように リストボックスにリストを追加する方法は複数あり、 特に皆さんが大変そうだと考えているイニシャライズで設定する方法では、配列も使えてしまいます。なんと配列が、一番簡単 ということに驚かれたのではないでしょうか?便利なリストボックスぜひ 使ってみてください。