【VBA】Weekday関数で人事・勤怠管理を効率化:日付から曜日を判定し自動集計】
人事・勤怠管理において、従業員の勤務実績を集計する際、日付ごとの曜日を把握することは非常に重要です。特に、週休二日制や祝日の管理、特定の曜日に対する割増賃金の計算など、曜日情報は不可欠な要素となります。手作業で曜日を調べて入力したり、カレンダーと照らし合わせたりする作業は、時間と労力を浪費するだけでなく、人的ミスも発生しやすくなります。
Weekday関数の基本
VBAのWeekday
関数は、日付を表す値から曜日を数値として取得するために使用されます。この関数を使うことで、日付データをプログラムで処理し、曜日を自動的に判定することが可能になります。
Weekday(Date, [FirstDayOfWeek])
Date
:曜日を調べたい日付を指定します。FirstDayOfWeek
:週の最初の曜日を指定します(省略可能)。
FirstDayOfWeek
には、以下の定数を指定できます。
vbUseSystemDayOfWeek
(0):システムの既定値を使用(既定)vbSunday
(1):日曜日vbMonday
(2):月曜日vbTuesday
(3):火曜日vbWednesday
(4):水曜日vbThursday
(5):木曜日vbFriday
(6):金曜日vbSaturday
(7):土曜日
例えば、Weekday(Date, vbMonday)
と指定すると、月曜日が週の始まりとして曜日が計算されます。
人事・勤怠管理でのWeekday関数の活用例
例1:勤務実績データの曜日自動入力
従業員の勤務実績データ(日付、出勤時間、退勤時間など)がExcelに記録されている場合、Weekday
関数を使って曜日を自動的に入力できます。
Sub 自動曜日入力()
Dim i As Long
Dim lastRow As Long' データ最終行を取得
lastRow = Cells(Rows.Count,