サイトについて      連絡先   検索

VBA Select 文

はじめに

Excel VBA の Select 文を使用して条件分岐する方法を紹介します。

Select 文は If 文に比べて複数の条件で分岐するときに向いています。

Case 条件を追加していくらでも条件を増やせます。

Select Case 変数

Select Case 変数Case 値End Selectのようにして、変数が Case の値と一致したときにその Case の処理を行います。

Dim i As Integer
i = 0

Select Case i ' i が次の値のとき Case のコードを実行します。
    Case 0
        Debug.Print ("0") ' i が 0 のとき
    Case 1
        Debug.Print ("1") ' i が 1 のとき
    Case Else
        Debug.Print ("2") ' i がそれ以外のとき
End Select

Case 値には次のような書き方ができます。

Dim i As Integer

Select Case i
    Case 0, 1, 2
        Debug.Print ("0") ' i が 0 か 1 か 2 のとき

    Case 3 To 6
        Debug.Print ("1") ' i が 3 ~ 6 のとき

    Case Is >= 7
        Debug.Print ("2") ' i が 7 以上のとき

    Case 0, 2 To 3, Is > 4
        Debug.Print ("3") ' 条件の組み合わせもできます。
End Select

Select Case True

Select Case TrueCase 条件End Selectのようにして、条件に一致したときにその Case の処理を行います。If 文の ElseIf と同じ感覚で使用できます。

Dim i As Integer
i = 0
Dim s As String
s = "Tips"

Select Case True
    Case i = 100
        Debug.Print ("0") ' i が 100 のとき
    Case s = "Tips"
        Debug.Print ("1") ' s が Tips のとき
    Case Else
        Debug.Print ("2") ' それ以外のとき
End Select

Case 値には次のような書き方ができます。

Dim i As Integer
i = 0
Dim s As String
s = "Tips"

Select Case True
    Case i = 100, i = 200
        Debug.Print ("0") ' i が 100 か 200 のとき
    Case s = "Tips", s = "found"
        Debug.Print ("1") ' s が Tips か found のとき
    Case Else
        Debug.Print ("2") ' それ以外のとき
End Select

関連ページ