【VBA】Weekday関数で人事・勤怠管理を効率化:日付から曜日を判定し自動集計

【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,