前提
用意
- テーブル
- フォーム
コード
リストボックスを全て選択・選択解除
[リストボックスの名前].Selected(数字)はリストボックスの指定項目の選択状態のプロパティ。
Trueにすると選択状態に、Falseにすると非選択状態になる。
'リストボックスを全て選択 Private Sub btn_allSelect_Click() Dim i As Long 'リスト件数分ループしてSelectedをTrueにする For i = 0 To Me.ListBox.ListCount - 1 ListBox.Selected(i) = True Next End Sub 'リストボックスを全て選択解除 Private Sub btn_allClear_Click() Dim i As Long 'リスト件数分ループしてSelectedをFalseにする For i = 0 To Me.ListBox.ListCount - 1 ListBox.Selected(i) = False Next End Sub
選択項目を取得してテーブルに保存・読み込んで選択状態にする
[リストボックスの名前].ItemData(数字)はリストボックスの指定項目の値を取得するプロパティ。
'選択項目を取得してテーブルに保存する Private Sub btn_saveList_Click() Dim i As Long '保存用ワークを初期化 CurrentDb.Execute ("DELETE FROM 選択したデータ") 'リスト件数分ループして選択されている項目をワークにINSERTする For i = 0 To ListBox.ListCount - 1 If ListBox.Selected(i) = True Then CurrentDb.Execute ("INSERT INTO 選択したデータ(test)VALUES('" _ & ListBox.ItemData(i) & "')") End If Next i End Sub 'テーブルに保存された項目を読み込み選択する Private Sub btn_readList_Click() Dim i As Long Dim rs As Recordset 'ワークのレコードセットを開く Set rs = CurrentDb.OpenRecordset("SELECT test FROM 選択したデータ") 'リストの項目全件に対して、読み込んだワークに存在するかを判定する For i = 0 To ListBox.ListCount - 1 rs.FindFirst "test='" & ListBox.ItemData(i) & "'" '合致したもののみTrue If Not rs.NoMatch Then ListBox.Selected(i) = True End If Next i End Sub