HOME > 即効テクニック > Excel VBA > 関数関連のテクニック > 真となる最初の式を返す(Switch関数)

即効テクニック

関数関連のテクニック

真となる最初の式を返す(Switch関数)

(Excel 2000)
Switch関数は、式のリストを評価し、リストの中でTrueとなる最初の式に関連付けられたバリアント型 (Variant)の値または式を返します。式とそれに対応する値はペアで指定します。少なくとも、1つ以上のペアを指定する必要があります。


  構文 Switch(Expr-1, Value-1, Expr-2, Value-2 ... , Expr-n,Value-n)

 設定項目        内容
  Expr      評価対象の式を指定する [省略不可]
  Value      評価対象の式がTrueの場合に返す値か式 [省略不可]


次のサンプル1は、実行時の時間に応じて表示するメッセージを変更します。


●サンプル1●
Sub SwitchSamp1()
    Dim myH As Integer

    myH = Hour(Now)
    MsgBox Switch(myH <= 4, "早く寝ましょう", myH <= 6, "早起きですね", _
           myH <= 9, "おはようございます", myH <= 11, "こんにちは", _
           myH <= 13, "お昼は食べましたか", myH <= 15, "おやつにしましょう", _
           myH <= 17, "そろそろ仕事も終わりですか", myH <= 19, "お疲れ様でした", _
           myH <= 21, "今日も楽しかったですか", myH <= 23, "おやすみなさい")
          '---今の時間に応じて、表示するメッセージを変更します

End Sub
式はリストの左から評価され、最初にTrueを返した式に対応する値が採用されるため、例えば朝6時に実行した場合には次のような結果となります。


●注意●
Switch関数は、Select Caseステートメントの機能に非常に似ていますが、決定的に違う点があります。それはIIf関数と同じく、条件に当てはまらない部分の式も評価の対象とする点です。従って、エラー発生を防ぐためのフロー分岐処理には向いていません。