構文
構文は以下の通りです。
WorksheetFunction.Weekday(日付, [戻り値の種類])
解説
WorksheetFunctionは、ExcelVBAの組み込みオブジェクトで、Excelのワークシート関数をVBAから呼び出す際に使用します。Weekday関数は、指定した日付が週の何曜日になるかを数値で返す関数です。基本は、日曜日が1、月曜日が2、…、土曜日が7として返されますが、戻り値の種類を指定することで基準を変更することができます。例えば、戻り値の種類に「2」を指定した場合、月曜日を1、日曜日を7として扱います。これにより、プログラムの要件に応じて柔軟に曜日の計算ができます。
プログラミング例
具体的なプログラミング例を紹介します。
(例1)基本的なWeekday関数の使い方
Sub 曜日を調べる()
Dim 調べる日付 As Date
Dim 曜日 As Integer
' 日付を設定
調べる日付 = #2024/10/01#
' Weekday関数で曜日を取得(デフォルトは日曜日が1)
曜日 = WorksheetFunction.Weekday(調べる日付)
' 結果を表示
MsgBox "この日は週の" & 曜日 & "日目です。"
End Sub
Dim 調べる日付 As Date
Dim 曜日 As Integer
' 日付を設定
調べる日付 = #2024/10/01#
' Weekday関数で曜日を取得(デフォルトは日曜日が1)
曜日 = WorksheetFunction.Weekday(調べる日付)
' 結果を表示
MsgBox "この日は週の" & 曜日 & "日目です。"
End Sub
上記のプログラムは、2024年10月1日が何曜日なのか調べます。
(例2)月曜日を1としてWeekday関数を使用
Sub 月曜日を基準に曜日を調べる()
Dim 調べる日付 As Date
Dim 曜日 As Integer
' 日付を設定
調べる日付 = #2024/10/01#
' 月曜日を1として曜日を取得
曜日 = WorksheetFunction.Weekday(調べる日付, 2)
' 結果を表示
MsgBox "この日は月曜日を基準にすると、週の" & 曜日 & "日目です。"
End Sub
Dim 調べる日付 As Date
Dim 曜日 As Integer
' 日付を設定
調べる日付 = #2024/10/01#
' 月曜日を1として曜日を取得
曜日 = WorksheetFunction.Weekday(調べる日付, 2)
' 結果を表示
MsgBox "この日は月曜日を基準にすると、週の" & 曜日 & "日目です。"
End Sub
上記のプログラムは、月曜日を1として曜日を計算しています。 2024年10月1日が月曜日から数えて何番目の曜日かが表示されます。
まとめ
Weekday関数は、日付が週の何曜日になるかを判定するために使用します。引数として日付を渡し、返却値の種類を指定することで、日曜日または月曜日を基準に曜日を減らすことができます。