● 概要 ●
リストボックスには、テーブルやクエリに保存されているデータだけでなく、任意のデータを指定して表示することもできます。
その場合、RowSourceTypeプロパティに「Value List」を設定します。また、表示するデータは、RowSourceプロパティにセミコロンで区切って設定します。
次のコードは、フォームを読み込むときに、リストボックスに表示するデータを指定するものです。
● サンプル ●
Private Sub Form_Load()
With リスト
'値集合タイプ
.RowSourceType = "Value List"
'値集合ソース
.RowSource = "イヌ;ネコ;リス"
End With
End Sub
● 操作例1 ●
コードでリストに項目を追加するには、AddItemメソッドを利用します。引数に指定した文字列をリストの末尾に追加します。
書式は次のとおりです。
ListBox.AddItem(Item)
次のコードは、AddItemメソッドを利用して、[追加]ボタンの機能を記述したものです。
Private Sub cmd追加_Click()
'テキストボックスに入力されている場合
If Not IsNull(テキスト) Then
'テキストボックスの値をリスト末尾に追加
リスト.AddItem テキスト.Value
End If
End Sub
● 操作例2 ●
AddItemメソッドの第2引数に、インデックス番号を指定すると、第1引数に指定した文字列をリストのインデックス位置に追加します。
インデックス番号は、0から始まります。
書式は次のとおりです。
ListBox.AddItem(Item, Index)
次のコードは、インデックスを利用して[挿入]ボタンの機能を記述したものです。
Private Sub cmd挿入_Click()
'テキストボックスに入力があり、かつ、リストボックスの
項目が選択されている場合
If Not IsNull(テキスト) And リスト.ListIndex <> -1 Then
リスト.AddItem テキスト.Value, リスト.ListIndex
End If
End Sub
● 操作例3 ●
リストボックスから項目を削除するには、RemoveItemメソッドを利用します。引数には、削除する項目のインデックス番号を指定します。書式は次のとおりです。
ListBox.RemoveItem(Index)
Private Sub cmd削除_Click()
'リストボックスの項目が選択されている場合
If リスト.ListIndex <> -1 Then
'選択項目を削除
リスト.RemoveItem リスト.ListIndex
End If
End Sub
● 注意 ●
AddItemメソッドとRemoveItemメソッドが使用できるのは、リストボックスの
RowSourceTypeプロパティが「Value List」に設定されている場合になります。