【VBA】Weekday関数で人事・勤怠管理を効率化:曜日判定による休暇管理の自動化
人事・勤怠管理において、従業員の勤務状況を正確に把握することは非常に重要です。特に、曜日を考慮した休暇管理や勤務時間計算は、手作業で行うと時間と労力がかかります。VBAのWeekday
関数を利用することで、これらの業務を効率化し、人的ミスを減らすことができます。
Weekday関数の基本
Weekday
関数は、日付を表す値から曜日を返すVBAの関数です。戻り値は整数で、1(日曜日)から7(土曜日)までの値を返します。この関数を使用することで、特定の日付が何曜日であるかを簡単に判別できます。
Weekday(date, [firstdayofweek])
date
:日付を表すVariant型(日付型)の値を指定します。[firstdayofweek]
:省略可能な引数で、週の最初の曜日を指定します。指定しない場合は、vbSunday
(日曜日)が既定値となります。
firstdayofweek
引数に使用できる定数は以下の通りです。
vbUseSystemDayOfWeek
:システムの既定値を使用vbSunday
:1(日曜日)vbMonday
:2(月曜日)vbTuesday
:3(火曜日)vbWednesday
:4(水曜日)vbThursday
:5(木曜日)vbFriday
:6(金曜日)vbSaturday
:7(土曜日)
人事・勤怠管理におけるWeekday関数の活用例
例1:特定の日付が週末かどうかを判定する
従業員が特定の日付に勤務可能かどうかを判断するために、その日が週末かどうかを判定するコード例です。
Function IsWeekend(checkDate As Date) As Boolean
Dim dayOfWeek As Integer
dayOfWeek = Weekday(checkDate, vbSunday) ' 日曜日を週の始まりとする
If dayOfWeek = 1 Or dayOfWeek = 7 Then ' 1=日曜日、7=土曜日
IsWeekend = True
Else
IsWeekend = False
End If
End Function
使用例:
Sub TestIsWeekend()
Dim targetDate As Date
targetDate = InputBox(