教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでWeekDay関数の使い方

構文

構文は以下の通りです。

Weekday(日付, [週の開始曜日])

解説

Weekday関数は、指定された日付に対応する曜日を数値で返す関数です。

引数 指定 内容
日時 必須 曜日を取得したい日付を指定します。日付はDate型、または日付を表す文字列で指定します。
週の開始曜日 省略可 曜日の最初の日を指定します。省略するとシステムの設定に従います。設定値を以下で紹介します。

週の開始曜日には以下の設定値が指定できます。

定数 内容
vbSunday 1 日曜日(既定値)
vbMonday 2 月曜日
vbTuesday 3 火曜日
vbWednesday 4 水曜日
vbThursday 5 木曜日
vbFriday 6 金曜日
vbSaturday 7 土曜日

戻り値は以下の通りです。

内容
1 日曜日
2 月曜日
3 火曜日
4 水曜日
5 木曜日
6 金曜日
7 土曜日

プログラミング例

具体的なプログラミング例を紹介します。

Sub Weekday関数の例()
    Dim 日付 As Date
    Dim 曜日 As Integer
    日付 = #2024/7/23#
    ' デフォルト(vbSunday)で曜日を取得
    曜日 = Weekday(日付)
    MsgBox "デフォルト(vbSunday)で指定した日付の曜日番号は: " & 曜日
    ' 月曜日を1とする設定(vbMonday)で曜日を取得
    曜日 = Weekday(日付, vbMonday)
    MsgBox "vbMondayで指定した日付の曜日番号は: " & 曜日
End Sub

上記のプログラムは、週の開始曜日を指定しなかった場合と指定した場合とで、表示される戻り値が違う事が分かります。

まとめ

Weekday関数は、指定した日付の曜日を数値で返す関数です。デフォルトでは、日曜日を1、土曜日を7としますが、戻り値の種類を指定することで、月曜日を1とするなど他の設定も可能です。