即効テクニック |
● 概要 ● リストボックスには、テーブルやクエリに保存されているデータだけでなく、任意のデータを指定して表示することもできます。 その場合、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」に設定されている場合になります。