サイトについて      連絡先   検索

VBA Weekday 関数

はじめに

Excel VBA マクロの Weekday 関数を紹介します。

Weekday 関数は、指定した日付の曜日を返します。

日付から曜日の値を取得したいときに使用します。

  • 目次
    • 構文
    • 解説
    • 使用例

構文

Weekday(日付)
日付の曜日を 1 (日曜) ~ 7 (土曜) の値で取得します。

Weekday(日付, 最初の曜日)
週の最初の曜日を指定できます。

引数「日付」日付を指定します。
引数「最初の曜日」省略できます。週の最初の曜日を何曜日にするか指定します。
戻り値の型数値型 (Integer)

引数「最初の曜日」

曜日 説明
vbSunday (既定)日曜日から土曜日までを 1 ~ 7 として結果を返します。
vbMonday月曜日から日曜日までを 1 ~ 7 として結果を返します。
vbTuesday火曜日から月曜日までを 1 ~ 7 として結果を返します。
vbWednesday水曜日から火曜日までを 1 ~ 7 として結果を返します。
vbThursday木曜日から水曜日までを 1 ~ 7 として結果を返します。
vbFriday金曜日から木曜日までを 1 ~ 7 として結果を返します。
vbSaturday土曜日から金曜日までを 1 ~ 7 として結果を返します。

解説

引数「日付」曜日が日月火水木金土の順番に1,2,3,4,5,6,7の値を返します。

引数「最初の曜日」がvbMonday(月曜日) なら、月火水木金土日の順番に1,2,3,4,5,6,7の値を返します。

引数「日付」が時刻なら、日付型の初期値1899/12/30が土曜日なのでその値を返します。

引数「日付」が数値なら、日付型の初期値1899/12/30にその数値の日を足した日付の曜日を返します。

VbDayOfWeek 列挙型の値が、日曜日を 1 とした値に対応しているので、通常は引数「最初の曜日」を省略します。

使用例

1

Dim i As Integer

i = Weekday("2017/1/1")
Debug.Print(i) ' 1
i = Weekday("2017/1/2")
Debug.Print(i) ' 2

i = Weekday("2017/1/1", vbSunday)
Debug.Print(i) ' 1
i = Weekday("2017/1/2", vbSunday)
Debug.Print(i) ' 2

i = Weekday("2017/1/1", vbMonday)
Debug.Print(i) ' 7
i = Weekday("2017/1/2", vbMonday)
Debug.Print(i) ' 1

i = Weekday("1899/12/30")
Debug.Print(i) ' 7
i = Weekday("1:2:3")
Debug.Print(i) ' 7
i = Weekday(1) ' 1899/12/31 の曜日
Debug.Print(i) ' 1

曜日ごとに条件分岐する。vbSundayなどは VbDayOfWeek 列挙型の値です。


' 曜日ごとに処理を分ける
Select Case Weekday("2017/1/1")
    Case vbSunday
    Case vbMonday
    Case vbTuesday
    Case vbWednesday
    Case vbThursday
    Case vbFriday
    Case vbSaturday
End Select
  • 目次
    • 構文
    • 解説
    • 使用例