選択された項目を取得する

広告

リストボックスで選択された項目を取得する方法を確認します。

まず選択された項目のインデックス番号を取得します。インデックス番号を取得するには「ListIndex」プロパティを使います。

現在選択されている項目を返します。値を設定することで選択する項目を
指定することも出来ます。

引数:
  object  設定するオブジェクトを指定します。
  Variant  コントロールで、現在選択されている項目を示します。

項目のインデックス番号は一番上の項目が「0」です。選択されていない場合には「-1」が返ります。

次に指定したインデックス番号の項目を取得します。項目を取得するには「List」プロパティを使います。

指定した行と列のリストの項目を返します。

引数:
  object  設定するオブジェクトを指定します。
  row  0 以上で、リストの項目数から 1 を引いた数以下の整数値を指定し
    ます。
  column  0 以上で、列の数から 1 を引いた数以下の整数値を指定します。

行と列を指定して項目を取得します、列があるのはリストボックスでは複数列の表示も可能な為です。行及び列の値は先頭が「0」から開始されます。

実際の使い方としては次のようになります。

Dim index As Integer

index = sampleForm.listFoods.ListIndex
If index = -1 Then
    MsgBox "選択されていません"
Else
    MsgBox sampleForm.listFoods.List(index)
End If

サンプルプログラム

では簡単なサンプルで試してみましょう。ボタン(オブジェクト名はgetButton)を1つ追加してClickイベント処理を記述します。

Private Sub getButton_Click()
    Dim index As Integer
    
    index = sampleForm.listFoods.ListIndex
    If index = -1 Then
        MsgBox "選択されていません"
    Else
        MsgBox sampleForm.listFoods.List(index)
    End If
End Sub

また呼びだすマクロは次の通りです。

testList2.bas

Sub テスト()
    Load sampleForm
    sampleForm.listFoods.AddItem "りんご"
    sampleForm.listFoods.AddItem "オレンジ"
    sampleForm.listFoods.AddItem "メロン"
    sampleForm.Show
End Sub

上記マクロを実行すると次のように表示されます。

選択された項目を取得する

項目を選択しない状態で「値の取得」ボタンをクリックすると次のように表示されます。

選択された項目を取得する

項目を選択して「値の取得」ボタンをクリックすると次のように表示されます。

選択された項目を取得する

( Written by Tatsuo Ikura )