即効テクニック |
サンプルでは、指定された日付が何曜日であるかを整数で返す 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 土曜