分岐処理
指定した条件に応じて、プログラム内の特定のコードブロックのみを実行させたい場合などは、分岐ステートメントを使用します。
If...Then...Else
使用頻度の高い分岐ステートメントの 1 つとして If ステートメントがあり、これは次のように使用します。
If A > 3 Then
B = 2
End If
このサンプルコードで B = 2 の行が実行されるのは、変数 A の値が 3 より大きい場合だけです。If ステートメントのバリエーションとして、If/Else 句があります。
If A > 3 Then
B = 2
Else
B = 0
End If
このサンプルコードで変数 B に代入される値は、変数 A が 3 以上の場合は 2 となり、それ以外の場合 B に代入される値は、0 となります。
If ステートメントをカスケード化して、次のようなより複雑な条件分岐を行わせることもできます。
If A = 0 Then
B = 0
ElseIf A < 3 Then
B = 1
Else
B = 2
End If
このサンプルコードでは、変数 A の値が 0 であれば、変数 B には 0 が代入されます。変数 A の値が 3 よりも小さければ (ただし 0 とは等しくない)、変数 B には 1 が代入されます。これら以外の場合 (つまり変数 A の値が 3 以上の場合)、変数 B には 2 が代入されます。
Select...Case
Select...Case ステートメントは、If ステートメントのカスケード化と同等の機能を果たすもので、複数の条件に対する分岐を行う際に使用します。
Select Case DayOfWeek
Case 1:
NameOfWeekday = "Sunday"
Case 2:
NameOfWeekday = "Monday"
Case 3:
NameOfWeekday = "Tuesday"
Case 4:
NameOfWeekday = "Wednesday"
Case 5:
NameOfWeekday = "Thursday"
Case 6:
NameOfWeekday = "Friday"
Case 7:
NameOfWeekday = "Saturday"
End Select
このサンプルコードでは、変数 DayOfWeek の値が 1 であれば Sunday 、2 であれば Monday というように、各曜日の名前を番号で識別させています。
Select コマンドによる条件判定は、単純な 1 対 1 に限定されるものではなく、Case による個々の分岐指定部には比較演算子を使ったり、複数の条件式をリスト化して一括指定することが可能です。次のサンプルコードでは、特に多用される条件判定の例を示します。
Select Case Var
Case 1 To 5
' ... Var is between the numbers 1 and 5
Case 6, 7, 8
' ... Var is 6, 7 or 8
Case Var > 8 And Var < 11
' ... Var is greater than 8 and less than 11
Case Else
' ... all other instances
End Select
| Content on this page is licensed under the Public Documentation License (PDL). |