方法: 式を複数の値と比較する (Visual Basic)
同じ式を複数の値と比較する場合は、If...Then...Else ステートメント (Visual Basic) 構造の代わりに Select...Case ステートメント (Visual Basic) 構造を使用できます。 If ステートメントと ElseIf ステートメントは、各ステートメントで異なる式を評価できるのに対し、Select ステートメントは、1 つの式を 1 回だけ評価し、その式をすべての比較に使用します。
1 つの式を 1 回だけ評価し、複数の値と比較するには
Select...Case 構造を使用して、式および複数の値を指定します。 各 Case ステートメントには、1 つまたは複数の値、値の範囲、または値と比較演算子の組み合わせを指定できます。 Case Else ステートメントを使用すると、それ以前の Case ステートメントで検証されなかったすべての値を処理できます。 このプロセスを説明する例を次に示します。
Function bonus(ByVal performance As Integer, ByVal salary As Decimal) As Decimal Select performance Case 1 Return salary * 0.1 Case 2, 3 Return salary * 0.09 Case 5 To 7 Return salary * 0.07 Case 4, 8 To 10 Return salary * 0.05 Case Is < 15 Return 100 Case Else Return 0 End Select End Function
Visual Basic は、式の値と Case ステートメントの値とを、Select...Case 構造で指定されている順序で比較します。 値が一致するか、Case Else ステートメントが実行されると、対応するステートメント ブロックが実行されます。 いずれの場合も、その後、End Select ステートメントに続くステートメントに分岐します。
Case ステートメントは、任意の数指定できます。また、Case ステートメントがあるかどうかにかかわらず、Case Else ステートメントを 1 つ指定でき、省くこともできます。
Select...Case 構造のコード例は、IntelliSense コード スニペットにもあります。 コード スニペット ピッカーでは、これは [Visual Basic Language] にあります。 詳細については、「方法 : IntelliSense コード スニペットを挿入する」を参照してください。
参照
処理手順
方法: 制御構造から制御を移す (Visual Basic)
方法: 1 つ以上の条件に基づいてステートメントを実行する (Visual Basic)
方法: エラー発生時に制御を継続する (Visual Basic)