方法 : 式を複数の値と比較する
更新 : 2007 年 11 月
同じ式を複数の値と比較する場合は、If...Then...Else ステートメント (Visual Basic) 構造の代わりに Select...Case ステートメント (Visual Basic) 構造を使用できます。If ステートメントと ElseIf (Visual Basic) ステートメントは、各ステートメントで異なる式を評価できるのに対し、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] にあります。詳細については、「方法 : コードにスニペットを挿入する (Visual Basic)」を参照してください。
参照
処理手順
方法 : 1 つ以上の条件に基づいて、ステートメントを実行する