Home > 即効テクニック > Excel VBA > ユーザーフォーム関連のテクニック > リストボックスの項目をセットして複数選択された項目内容を取得する

即効テクニック

ユーザーフォーム関連のテクニック

リストボックスの項目をセットして複数選択された項目内容を取得する

(Excel 97/2000)
リストボックスの各項目の選択状況を設定/取得できるSelectedプロパティを使用して、どの項目が選択されているかを取得します。
フォームにリストボックス「ListBox1」コマンドボタン「CommandButton1」を配します。
フォームが開かれる時に発生するイベント「Initialize」に次のマクロを記述します。リストに項目がセットされます。
Private Sub UserForm_Initialize()
    Dim my_List
    
    my_List = Array("札幌", "東京", "大阪", _
                    "広島", "福岡")
                    
    With ListBox1
        .List = my_List
        .MultiSelect = fmMultiSelectExtended
    End With
    
    CommandButton1.Caption = "実行"
    
End Sub
コマンドボタンがクリックされた時に発生するイベント「Click」に次のマクロを記述します。
Private Sub CommandButton1_Click()
    Dim i As Integer
    
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) Then
            MsgBox ListBox1.List(i) & "を選んでます。"
        End If
    Next i

End Sub