Switch関数とは
一連の式を評価して最初にTrueと評価された式に対応する値を返します。もし、すべての式がFalseである場合の結果はNullとなります。
Switch関数の構文
Switch(expr1, value1, [expr2, value2], ... [exprn, valuen])
これらは二つずつペアになっています。
- expr1, expr2, ..., exprn: 評価する条件式。
- value1, value2, ..., valuen: 該当の条件式がTrueと評価された場合に返される値。
基本的な使用例
例として、Weekday関数を使用して今日の曜日を数字で取得し、Switch関数を使用して該当する曜日の名前をResult変数に設定しています。
最後にメッセージボックスで結果を表示するコードです。
Dim Result As String
Dim DayNumber As Integer
DayNumber = Weekday(Date) ' 今日の曜日を数字で取得
Result = Switch( _
DayNumber = 1, "Sunday", _
DayNumber = 2, "Monday", _
DayNumber = 3, "Tuesday", _
DayNumber = 4, "Wednesday", _
DayNumber = 5, "Thursday", _
DayNumber = 6, "Friday", _
DayNumber = 7, "Saturday" _
)
MsgBox "Today is " & Result
Switch関数の特徴
最初にTrueと評価される式の対応する値を返すため、複数の式がTrueであっても、最初のTrueと評価された式の値のみが返されます。
すべての条件式がFalseの場合、Switch関数はNullを返します。
If...Then...ElseIf構文と比べて、Switch関数は複数の条件を簡潔に記述することができるメリットがあります。