Weekday関数:日付の値から曜日を取得する

Weekday 関数は Excel VBA で用意されている関数の一つで、引数に指定した日付の値から曜日を表す数値を取得します。ここでは Excel VBA における Weekday 関数の使い方について解説します。

(Last modified: )

Weekday関数の定義と使い方

Weekday 関数は引数に指定した日付の値の中から曜日を表す数値を取得します。

Weekday(date)

1 番目の引数に対象となる日付の値を指定します。戻り値として曜日を表す 1 から 7 までの整数の値を取得します。各数値は次のように曜日に対応しています。

定数説明
vbSunday1日曜日
vbMonday2月曜日
vbTuesday3火曜日
vbWednesday4水曜日
vbThursday5木曜日
vbFriday6金曜日
vbSaturday7土曜日

例えば曜日が水曜日だった場合、 Weekday 関数は 4 を返します。

次の例を見てください。

Debug.Print Weekday("2013/08/16")  '6
Debug.Print Weekday("1998/12/5")   '7

引数に指定した日付の値の中から曜日に関する値を取得してイミディエイトウィンドウに表示します。最初の日付は金曜日、次の日付は土曜日であることが分かります。

週の最初の曜日を設定する

なお省略可能な 2 番目の引数で週の最初の曜日を設定することができます。設定する値は次のいずれかです。

定数説明
vbUseSystem0NLS API 設定を使用します
vbSunday1日曜日
vbMonday2月曜日
vbTuesday3火曜日
vbWednesday4水曜日
vbThursday5木曜日
vbFriday6金曜日
vbSaturday7土曜日

デフォルトの値は日曜日です。

次の例を見てください。

Debug.Print Weekday("2013/08/16")  '6
Debug.Print Weekday("2013/08/16", vbMonday)  '5

同じ日付であっても週の最初の曜日を月曜日に設定すると戻り値が変わってきます。これは曜日が変わってしまうという意味ではなく、戻り値の数値が対応する曜日が変わっているだけです。

週の最初の曜日を例えば月曜日に設定した場合、 Weekday 関数の戻り値は次のように曜日に対応しています。

定数説明
vbMonday1月曜日
vbTuesday2火曜日
vbWednesday3水曜日
vbThursday4木曜日
vbFriday5金曜日
vbSaturday6土曜日
vbSunday7日曜日

戻り値の値は変わっても、その値に対応する曜日も変わっているので結果としてどのような設定にしても特定の日付の曜日は同じ結果となります。ただ曜日に対応する数値が変わってくるだけです。特に理由がなければ週の最初の曜日はデフォルトの日曜日のままでいいかと思います。

サンプルコード

それでは簡単なサンプルを作成して試してみます。

Option Explicit

Sub Weekday関数()
    Dim i As Integer

    For i = 3 To 6
        Cells(i, 3).Value = Weekday(Cells(i, 2).Value)
        Cells(i, 4).Value = Choose(Weekday(Cells(i, 2).Value), "日", "月", "火", "水", "木", "金", "土")
    Next i
End Sub

Weekday関数の定義と使い方(1)

このプログラムを実行すると Weekday 関数を使って B3 セルから B6 セルに入力された日付に関する値から曜日を表す数値を取得し C3 セルから C6 セルに代入します。また Choose 関数を使って曜日を表す数値から曜日の曜日名を取得し D3 セルから D6 セルに代入します。

Choose 関数の使い方については「Choose関数:複数の値の中から指定のインデックスの値を取得する」を参照されてください。

Weekday関数の定義と使い方(2)

曜日を表す数値から曜日名を取得するには WeekdayName 関数を使用することもできます。詳しくは「WeekdayName関数:曜日を表す数値から曜日名を取得する」を参照されてください。

-- --

Excel VBA における Weekday 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。