Access VBA 複数選択リストボックスに値を入力

備忘録記事です。MicrosoftAccessのフォーム、複数選択可能なリストボックスコントロールに値を入力したい場合のVBAコードサンプル。

前提

図のようにフォームに複数選択できるリストボックスがある。このリストボックスの選択値を「りんご」と「ばなな」にしていする処理をVBAで書く。

処理としては、「Cmd1(「値を入力」ボタン)」をクリックした際に処理が行われるという前提で書いている。

Private Sub Cmd1_Click()
 Dim pStrMyString As String, pStrValue As Variant,  _
     pLngCNT As Long, pLngListCnt As Long
 Call ClearListBox
  pStrMyString = "りんご,ばなな"
  pStrValue = Split(pStrMyString, ",")
  For pLngCNT = 0 To UBound(pStrValue)
   For pLngListCnt = 0 To 3
    If Me.List1.Column(0, pLngListCnt) = pStrValue(pLngCNT) Then
     Me.List1.Selected(pLngListCnt) = True
    End If
   Next pLngListCnt
  Next pLngCNT
End Sub
----------------------------------------
Private Sub ClearListBox()
 Dim pLngCNT As Long
 For pLngCNT = 0 To Me.List1.ListCount - 1
  Me.List1.Selected(pLngCNT) = False
 Next pLngCNT
End Sub