【VBA】WeekdayName関数で人事・勤怠管理を効率化:日付から曜日名を自動取得する方法

【VBA】WeekdayName関数で人事・勤怠管理を効率化:日付から曜日名を自動取得する方法

人事・勤怠管理において、従業員の勤務状況を正確に把握することは非常に重要です。特に、勤務表やシフト表を作成する際、日付と曜日を紐付ける作業は手間がかかり、間違いも発生しやすいです。この問題を解決するために、VBAのWeekdayName関数を活用することで、日付から曜日名を自動的に取得し、業務効率を大幅に向上させることができます。

WeekdayName関数の基本

WeekdayName関数は、日付に対応する曜日名を返すVBAの関数です。この関数を使用することで、日付データを基に「月曜日」「火曜日」といった曜日名を簡単に取得できます。

WeekdayName(weekday[, abbreviate][, firstdayofweek])

  • weekday:必須。日付を表す数値を指定します。通常はWeekday関数などから取得します。
  • abbreviate:省略可能。Trueを指定すると、曜日名が省略形(例: 「月」)で返されます。
  • firstdayofweek:省略可能。週の最初の曜日を指定します。省略すると、システム設定が使用されます。

人事・勤怠管理におけるWeekdayName関数の活用例

例1:勤務表の自動作成

従業員の勤務表を作成する際、日付と曜日を自動で入力することができます。これにより、手作業による入力ミスを減らし、効率的な勤務表作成が可能です。

Sub CreateWorkSchedule()
Dim startDate As Date
Dim endDate As Date
Dim currentDate As Date
Dim i As Integer

' 開始日と終了日を設定
startDate = DateSerial(2024, 10, 1)
endDate = DateSerial(2024, 10, 31)

currentDate = startDate
i = 2 ' シートの2行目から開始

Do While currentDate <= endDate
' 日付をA列に入力
Cells(i, 1).Value = currentDate

' 曜日名をB列に入力
Cells(i, 2).Value = WeekdayName(Weekday(currentDate), True)

currentDate = DateAdd(