Select Case文 VBAで自動化 VBAテクニック集 VBA一覧 文法・構文

【VBA】Switch関数:条件によって処理内容を分ける方法

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関数は複数の条件を簡潔に記述することができるメリットがあります。

-Select Case文, VBAで自動化, VBAテクニック集, VBA一覧, 文法・構文