HOME > エクセルVBA >リストボックス

リストボックスとは

 リストボックスは選択項目を縦に並べて表示することが出来るユーザーインターフェースです。自動的でスクロールバーが表示されるので、選択項目が多い場合に便利です。

 まずはワークブックにデータを入力してみましょう。下の画像ではA1:A11にデータを入力しました。

リストボックス

 次にユーザーフォームを立ち上げてListBoxを作成します。ListBoxをクリックしてプロパティを確認しましょう。プロパティのRowSouceにデータ範囲を入力します。

リストボックスのプロパティ

 ユーザーフォームを起動してみましょう。リストボックスに指定したデータが入力されています。

ユーザーフォーム

データの取得

Listindexプロパティ

 Listindexプロパティはリストボックスで選択されている行を取得します。リストボックスの1行目は「0」、2行目は「1」になります。また、行が選択されていなければ「-1」を返します。

Textプロパティ、Valueプロパティ

 Textプロパティ、Valueプロパティ共に指定された行の値を取得することが出来ます。もし、リストボックスに複数列のデータを入力している場合はBoundColumnプロパティ、およびTextColumnプロパティを利用します。

BoundColumnプロパティ

 リストボックスに複数列が入力されている場合にValueプロパティが保持する値の列を指定することが出来ます。1列目を指定するなら「1」、2列目を指定するなら「2」を入力します。「0」を指定するとListindexプロパティの値がValueプロパティに入力されます。

TextColumnプロパティ

 BoundColumnプロパティと同様にリストボックスに複数列が入力されている場合にTextプロパティが保持する値の列を指定することが出来ます。1列目を指定するなら「1」、2列目を指定するなら「2」を入力します。「0」を指定するとListindexプロパティの値がTextプロパティに入力されます。

リストボックスの使用例

Private Sub CommandButton1_Click()
 With ListBox1
   If .ListIndex = -1 Then
    MsgBox "選択されていません。"
   Else
    MsgBox .Text
   End If
 End With
End Sub

リストボックスの使用例

 ユーザーフォームにリストボックスとコマンドボタン(データ取得)を設置します。コマンドボタンに上記のコードを入力し、ユーザーフォームを実行してみましょう。ボタンを押すと、リストボックスで選択されていた項目を取得することができます。

フレーム  エクセル職人  コンボボックス

▲TOPへ移動