Home > 即効テクニック > Excel VBA > その他関連のテクニック > リストボックスで選択された値を取得する

即効テクニック

その他関連のテクニック

リストボックスで選択された値を取得する

(Excel 97)
全シート名を取得して、リストボックスに表示する項目に設定します。
そのリストボックスで選択された値(シート名)を取得します。

まず、リストボックスとコマンドボタンを配置したフォームを用意します。
リストボックスには「ListBox1」、コマンドボタンには「CommandButton1」という名前をつけます。
リストボックスのリストに全シート名を設定するには、フォームが開かれる時に発生するイベント「UserForm_Initialize」で、次のように処理します。 
Private Sub UserForm_Initialize()
    Dim a As Worksheet

    ListBox1.MultiSelect = 1

    For Each a In Sheets
        ListBox1.AddItem a.Name
    Next

End Sub 
MultiSelectプロパティで、リストの項目を複数選択できるように設定して、For Eachステートメントを使って、シート名をリストに追加しています。
指定されたシートを取得するには、コマンドボタンがクリックされた時に発生するイベント「CommandButton1_Click」で、次のように処理します。
Private Sub CommandButton1_Click()
    Dim i As Integer

    With ListBox1
        For i = 0 To .ListCount - 1
            If .Selected(i) Then
                MsgBox .List(i)
            End If
        Next i
    End With

End Sub 
Selectedプロパティを使って、選択されているかどうかを判断して、選択されていたらメッセージボックスにその内容を表示します。
このメッセージボックスを表示する部分を、印刷処理や削除処理にするなどして応用することができます。