Access2013のリストボックスで複数選択された項目を削除するには、ループで選択されているかどうかチェックし、選択されていれば削除する方法だとうまくいきません。
下記の方法で行うとうまく削除できました。
- 1回目のループで総当りし、選択されているかどうかチェックします。
- 選択されている場合、そのインデックス番号を配列に格納します。
- 大きい方のインデックス番号から配列をループします。
- RemoveItemでリストから削除します。
[選択項目の削除]ボタンを設置します。
実行画面です。
リストボックスで複数選択し[選択項目の削除]ボタンをクリックします。
複数選択した項目が削除できました。
《 VBAコード 》
Private Sub コマンド10_Click()
Dim i As Integer
Dim j As Integer
Dim ar() As Long
ReDim ar(Me.リスト0.ListCount)
i = 0
j = 0
Do While i < Me.リスト0.ListCount
If Me.リスト0.Selected(i) Then
ar(j) = i
j = j + 1
End If
i = i + 1
Loop
For i = j - 1 To 0 Step -1
Debug.Print ar(i)
Me.リスト0.RemoveItem ar(i)
Next
Exit Sub
End Sub
関連リンク
選択したリストをテキストボックスに表示する
リストボックスから複数選択された項目を取り出す