選択された項目を取得する
リストボックスで選択された項目を取得する方法を確認します。
まず選択された項目のインデックス番号を取得します。インデックス番号を取得するには「ListIndex」プロパティを使います。
object.ListIndex = Variant
現在選択されている項目を返します。値を設定することで選択する項目を 指定することも出来ます。 引数: object 設定するオブジェクトを指定します。 Variant コントロールで、現在選択されている項目を示します。
項目のインデックス番号は一番上の項目が「0」です。選択されていない場合には「-1」が返ります。
次に指定したインデックス番号の項目を取得します。項目を取得するには「List」プロパティを使います。
object.List( row, column )
指定した行と列のリストの項目を返します。 引数: 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
また呼びだすマクロは次の通りです。
Sub テスト() Load sampleForm sampleForm.listFoods.AddItem "りんご" sampleForm.listFoods.AddItem "オレンジ" sampleForm.listFoods.AddItem "メロン" sampleForm.Show End Sub
上記マクロを実行すると次のように表示されます。
項目を選択しない状態で「値の取得」ボタンをクリックすると次のように表示されます。
項目を選択して「値の取得」ボタンをクリックすると次のように表示されます。
( Written by Tatsuo Ikura )