Excel VBAで今週の日付を取得するコード|Weekday関数を使用したサンプルシート
Weekday関数を使い曜日を取得し、そこから日付を計算するVBAを掲載しています。
Homeに戻る >
Excel 日付・時間のTipsへ
今週の日付とは、基準日が含まれる月曜~日曜の日付のことです。
■ 今週の日付を取得する方法
1)基準日の曜日を、Weekday関数で取得します。
Weekday関数を使うと下記の値を取得できます。
- vbSunday: 1 日曜
- vbMonday: 2 月曜
- vbTuesday: 3 火曜
- vbWednesday: 4 水曜
- vbThursday: 5 木曜
- vbFriday: 6 金曜
- vbSaturday: 7 土曜
2)曜日から開始日と終了日を計算します。
- 月曜日
開始日=基準日、終了日=基準日+6
- 火曜日
開始日=基準日-1、終了日=基準日+5
- 水曜日
開始日=基準日-2、終了日=基準日+4
- 木曜日
開始日=基準日-3、終了日=基準日+3
- 金曜日
開始日=基準日-4、終了日=基準日+2
- 土曜日
開始日=基準日-5、終了日=基準日+1
- 日曜日
開始日=基準日-6、終了日=基準日
関連する「WeekdayName関数:曜日を文字列で取得する」を掲載していますので、参考にしてください。
|
Excelシート実行画面
シートにコマンドボタンを配置しています。
ボタンをクリックするとイベントが発生し、記述したVBAを実行します。
D4セルに本日の日付を表示しています。
D5セルに基準日から、今週の開始日と終了日を計算し表示しています。
Excel VBA実行コード
Option Explicit
Private Sub CommandButton1_Click()
'基準日
Dim ttoday As Date
'今週の開始日
Dim stdate As Date
'今週の終了日
Dim endate As Date
'曜日
Dim nWeek As Integer
'基準日は本日にセット
ttoday = Date
'曜日を取得する
nWeek = Weekday(ttoday)
'開始日と終了日を計算
Select Case nWeek
Case vbMonday:
stdate = ttoday
endate = ttoday + 6
Case vbTuesday:
stdate = ttoday - 1
endate = ttoday + 5
Case vbWednesday:
stdate = ttoday - 2
endate = ttoday + 4
Case vbThursday:
stdate = ttoday - 3
endate = ttoday + 3
Case vbFriday:
stdate = ttoday - 4
endate = ttoday + 2
Case vbSaturday:
stdate = ttoday - 5
endate = ttoday + 1
Case vbSunday:
stdate = ttoday - 6
endate = ttoday
End Select
'基準日と開始日と終了日を表示
Range("D4") = ttoday
Range("D5") = stdate & " ~ " & endate
End Sub
Homeに戻る >
Excel 日付・時間のTipsへ
■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します
Copyright (c) Excel-Excel ! All rights reserved