サンプルでは、指定された日付が何曜日であるかを整数で返す
Weekday関数を使って直近の月曜日を取得しています。
まず、指定した日付が日曜日だったら6日前の日付を取得します。
指定した日付が月曜日だったらその日を返します。
それ以外だったら、指定された日付の曜日を表す整数値に2を加算した日数分を
指定した日付から引いて取得しています。
● サンプル ●
Sub GetMonDate()
Dim myMon As Date
Select Case Weekday(Date)
Case 1 '日曜日
myMon = Date - 6
Case 2 '月曜日
myMon = Date
Case 3 To 7 '火曜日から土曜日
myMon = Date - Weekday(Date) + 2
End Select
MsgBox "今日より前の一番近い月曜日は" & myMon & "です"
End Sub
● 詳細 ●
Weekday関数の構文は、次のとおりです。
<構文> Weekday(date, [firstdayofweek])
引数dateは、日付を表す数式または文字列式を必ず指定します。
引数firstdayofweekは、省略可能です。週の第1日目の曜日を指定する定数です。
この定数を指定しない場合は、定数vbSundayを指定したとみなされます。
引数firstdayofweekの設定値は次のとおりです。
定数 値 内容
vbUseSystem 0 NLS APIの設定値を使います
vbSunday 1 (既定値)日曜
vbMonday 2 月曜
vbTuesday 3 火曜
vbWednesday 4 水曜
vbThursday 5 木曜
vbFriday 6 金曜
vbSaturday 7 土曜
Weekday関数は、次のいずれかの値を返します。
定数 値 内容
vbSunday 1 日曜
vbMonday 2 月曜
vbTuesday 3 火曜
vbWednesday 4 水曜
VbThursday 5 木曜
VbFriday 6 金曜
VbSaturday 7 土曜
|