VBA(Visual Basic for Applications)の、Format関数の第2引数に「aaa」「aaaa」「ddd」「dddd」といった文字列を指定すると、曜日を表示できることをご紹介しました。
その記事の中で、曜日を使って条件分岐をするような場合には、別の関数を使うほうがいいということを書きました。
その関数をご紹介しておきましょう。
※今日の曜日を数値としてメッセージボックスに表示するコード MsgBox Weekday(Date)
Weekday関数は、引数に指定された日付が、何曜日なのを意味する整数を返してくれる関数です。
ワークシート関数に、条件付き書式を使って土日の色を変更したり、成人の日が何日かを調べたり、カレンダーを作成したりするようなときに利用する、WEEKDAY関数があります。
VBAのWeekday関数も、ワークシート関数のWEEKDAY関数と同じような関数です。
第2引数を指定しないデフォルトでは、日曜日を「1」として、月曜日が「2」、火曜が「3」、土曜が「7」と、曜日が変わるごとに1ずつ増える整数を返してくれます。
VBAで曜日で条件分岐したい場合、Weekday関数で曜日に該当する整数を取得して、If文やSelect Case文で分岐してやればOKです。
曜日の英語表記の前に「vb」のついた定数が定義されていますので、
Select Case Weekday(Date)
Case vbSaturday
Case vbSunday
Case Else
End Select
のような書き方をしてあげるほうが可読性が上がっていいでしょう。
ワークシート関数のWEEKDAY関数は、Excel 2010から第2引数に指定できる値が増えましたが、この第2引数についてはVBAのWeekday関数とワークシート関数のWEEKDAY関数とでは違うので、第2引数まで指定するときには注意が必要です。
Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » 曜日で条件分岐する-Weekday関数