【VBA】Weekday関数で人事・勤怠管理を効率化:曜日ごとの勤務時間集計
人事・勤怠管理において、曜日ごとの勤務時間を集計することは、シフト作成や労働時間分析において非常に重要です。しかし、手作業で集計するには時間と手間がかかり、ミスも発生しやすくなります。VBAのWeekday
関数を使用することで、この作業を自動化し、効率化することができます。
Weekday関数の基本
Weekday
関数は、日付に対応する曜日を数値で返す関数です。例えば、日曜日なら1、月曜日なら2といった具合です。
Weekday(Date, [FirstDayOfWeek])
Date
:日付を表す日付/時間型 (Date) の値、数式、または文字列式を指定します。FirstDayOfWeek
:省略可能な引数で、週の最初の曜日を指定します。VbSunday (1) が既定値です。
FirstDayOfWeek
引数には、以下の定数を使用できます。
vbUseSystemDayOfWeek
(0): NLS API 設定を使用vbSunday
(1): 日曜日 (既定値)vbMonday
(2): 月曜日vbTuesday
(3): 火曜日vbWednesday
(4): 水曜日vbThursday
(5): 木曜日vbFriday
(6): 金曜日vbSaturday
(7): 土曜日
人事・勤怠管理におけるWeekday関数の活用例
例1:勤務時間集計
社員の勤務データから、曜日ごとの勤務時間を集計する例です。
Sub 集計()
Dim i As Long, lastRow As Long
Dim ws As Worksheet
Dim dayOfWeek As Integer
Dim totalHours(1 To 7) As Double ' 1:日, 2:月, ..., 7:土Set ws = ThisWorkbook.Sheets(