式の一覧を評価し、一覧の中で真 (True) である最初の式に関連付けられた、バリアント型 (Variant) の値または式を返します。
構文
Switch( expr-1, value-1 [, expr-2, value-2 ] ... [, expr-n, value-n ] )
Switch 関数構文の引数は次のとおりです。
引数 |
説明 |
expr |
必須。 評価対象のバリアント型 (Variant) の式を指定します。 |
値 |
必須。 指定した式が真 (True) のときに返す値または式を指定します。 |
解説
Switch 関数の引数リストは、式と値のペアで構成されます。 式は左から右に計算され、最初に真 (True) と評価される式と関連付けられている値が返されます。 パーツが適切にペアリングされていない場合は、実行時エラーが発生します。 たとえば、expr-1 が真 (True) の場合、Switch は value-1 を返します。 expr-1 は偽 (False) で、expr-2 が真 (True) の場合は、Switch は value-2 を返すというように続きます。
次の場合、Switch は Null 値を返します。
-
すべての式が真 (True) ではない場合
-
最初の真 (True) の式に対応する値が Null の場合
Switch では、その 1 つだけの値を返しますが、すべての式が評価されます。 この理由から、予期しない結果が発生する場合があるので注意が必要です。 たとえば、任意の式の評価が 0 の除算になる場合、エラーが発生します。
クエリの例
式 |
結果 |
SELECT ProductSales.ProductID, Switch([ProductID]="PRO_XYZ1","First",[ProductID]="PRO_XYZ2","Two",[ProductID]="PRO_XYZ1","Ten") AS testSwitch FROM ProductSales; |
"ProductID" を返し、"Switch" 式で式を評価し、すべての "True" 式に対して定義された値を持つ既存の値を切り替えます。 たとえば、"PRO_XYZ1" は "First" に置き換えられ、"PRO_XYZ2" は "Two" に置き換えられます。 |
VBA の例
注: 次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。 VBA の使用方法の詳細については、[検索] の横にあるドロップダウン リストで [開発者用リファレンス] を選び、検索ボックスに検索する用語を入力します。
この例では、Switch 関数を使用して、都市の名前に一致する言語の名前を返します。
Function MatchUp (CityName As String)
Matchup = Switch(CityName = "London", "English", _ CityName = "Rome", "Italian", _ CityName = "Paris", "French") End Function