構文
構文は以下の通りです。
リストボックス名.ListIndex
' リストボックスの中から選択されたデータを取得
リストボックス名.List(行, 列)
解説
リストボックスで選択されている行位置を取得するには、ListIndexプロパティを使用します。ListIndexプロパティが返す値は、リストの先頭行を「0」として上から数えた行位置を表す数値となります。また、ListIndexプロパティは、リストボックスで何も選択されていない状態では「-1」を返します。この性質を利用して、リストボックス上でデータが選択されているか否かを判定する事ができます。
リストボックスから行位置や列位置を指定してデータを取得するには、Listプロパティを使用します。引数の行には行位置、列には列位置を指定します。行に指定する値は、リストの先頭行を「0」として上から数えた行位置を表す数値となります。また、列にはリストの左端を「0」として左から数えた列位置を表す数値となります。
これらのListIndexプロパティとListプロパティを組み合わせて使用する事で、リストボックスで選択されているデータをセルに入力する事が可能です。
使い方
リストボックスで選択されたデータを取得する基本的な構文は以下の通りです。
selectedIndex = ListBox1.ListIndex
ここで ListBox1.ListIndex には選択されたアイテムのインデックスが格納されます。そして、このインデックスを使ってリストからデータを取得します。
selectedData = ListBox1.List(selectedIndex, 1)
ここで ListBox1.List(selectedIndex, 1) は、選択されたアイテムの1列目のデータを取得します。ListBox1.List の第1引数が行のインデックスで、第2引数が列のインデックスです。
プログラミング例
以下に、プログラミング例を紹介します。
If ListBox1.ListIndex <> -1 Then
Dim selectedData As String
selectedData = ListBox1.List(ListBox1.ListIndex, 1)
Range("A1").Value = selectedData
Else
MsgBox "リストからデータを選択してください。", vbExclamation
End If
End Sub
この例では、もしリストボックスで何も選択されていない場合はメッセージボックスが表示され、そうでない場合は選択されたデータがセル A1 に入力されます。
まとめ
リストボックスのデータ取得とセルへの入力は、効率的で生産的な作業をサポートしてくれるため、是非積極的に活用してみてください。