VBScript - 制御構文(条件分岐)

VBScript で条件に基づいて処理を分岐する方法を説明する。

If または Select Case で分岐する方法がある。

If...Then...Else

式の値によって条件分岐を行う。

ブロック形式での書き方

If 〈条件〉 Then
    〈条件を満たす場合の処理〉
ElseIf 〈条件2Then
    〈条件2を満たす場合の処理〉
Else
    〈いずれの条件も満たさない場合の処理〉
End If

ElseIf および Else は任意。必要に応じて定義する。

ElseIf はいくつでも定義できる。

1行形式での書き方

(見にくいので非推奨)

If 〈条件〉 Then 〈条件を満たす場合の処理〉 Else 〈条件を満たさない場合の処理〉

複数のステートメントを書く場合は、コロン(:)で区切る。
難点はコードがさらに見にくくなること。

If A > 10 Then A = A + 1 : B = B + A : C = C + B

Select Case

式の値によって条件分岐を行う。

Select Case 〈式〉
    Case 〈式〉
        〈Case の式を満たした場合の処理〉
    Case Else
        〈いずれも満たさなかった場合の処理〉
End Select

Case はいくつでも定義できる。

Case Else は任意。必要に応じて定義する。

Select Case の使用例

myColor = InputBox("色を入力してください")
Select Case UCase(myColor)
    Case "RED"
        MsgBox "#f00"
    Case "GREEN"
        MsgBox "#0f0"
    Case "BLUE"
        MsgBox "#00f"
    Case Else
        MsgBox "そのような色は知りません"
End Select

不等号を使った式は使えない

VBScript の Select Case では不等号を使った条件は使えない。

次の書き方は VBScript ではコンパイルエラーになる。

sec = Second(Now)
Select Case sec
    Case 0 To 30
        MsgBox "0~30秒"
    Case Is <= 45
        MsgBox "31~45秒"
    Case Else
        MsgBox "46秒~"
End Select