即効テクニック |
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関数と同じく、条件に当てはまらない部分の式も評価の対象とする点です。従って、エラー発生を防ぐためのフロー分岐処理には向いていません。