構文
構文は以下の通りです。
リストボックス名.MultiSelect = fmMultiSelectMulti
解説
リストボックス名は、リストボックスの名前です。MultiSelectは、リストボックスで複数の項目を選択できるかを設定します。fmMultiSelectMultiは、複数選択を許可する設定です。この設定にすることで、ユーザーがリストボックス内で複数の項目を選ぶことができるようになります。その他の選択方法についても以下で紹介します。
【選択方法】
定数 | 値 | 内容 |
fmMultiSelectSingle | 0 | 1つの項目しか選べない単一選択モード |
fmMultiSelectMulti | 1 | Ctrlキーを押さずに連続していない行を複数選択できるモード |
fmMultiSelectExtended | 2 | Ctrlキーを押して連続していない行を複数選択できるモード(※Shiftキーを押しながらクリックすると、現在選択されている行からクリックした行までを連続して選択できる) |
プログラミング例
具体的なプログラミング例を紹介します。
Private Sub UserForm_Initialize()
' リストボックスに項目を追加
ListBox1.AddItem "りんご"
ListBox1.AddItem "バナナ"
ListBox1.AddItem "ぶどう"
' リストボックスで複数選択を可能にする
ListBox1.MultiSelect = fmMultiSelectMulti
End Sub
' リストボックスに項目を追加
ListBox1.AddItem "りんご"
ListBox1.AddItem "バナナ"
ListBox1.AddItem "ぶどう"
' リストボックスで複数選択を可能にする
ListBox1.MultiSelect = fmMultiSelectMulti
End Sub
Private Sub CommandButton1_Click()
Dim 選択された項目 As String
Dim 件数 As Integer
' 選択された項目を確認してメッセージボックスに表示
For 件数 = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(件数) Then
選択された項目 = 選択された項目 & ListBox1.List(件数) & vbCrLf
End If
Next
MsgBox "選択された項目は:" & vbCrLf & 選択された項目
End Sub
Dim 選択された項目 As String
Dim 件数 As Integer
' 選択された項目を確認してメッセージボックスに表示
For 件数 = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(件数) Then
選択された項目 = 選択された項目 & ListBox1.List(件数) & vbCrLf
End If
Next
MsgBox "選択された項目は:" & vbCrLf & 選択された項目
End Sub
上記のプログラムは、UserForm_InitializeにあるMultiSelect = fmMultiSelectMultiで、リストボックス内で同時に複数の項目を選択できるように設定しています。CommandButton1_Clickでは、ボタンをクリックした際に、選択されたリストボックスの項目をループで確認し、それをメッセージボックスに表示します。Selectedを使って、選択されている項目をチェックしています。
まとめ
リストボックスで複数行を選択できるようにするには、MultiSelectをfmMultiSelectMultiに設定します。これにより、リストボックス内で複数の項目を同時に選択可能となります。また、選択された項目はSelectedを使って確認できます。