出退勤の記録から、遅刻や早退を手作業で判定していると、チェック漏れや記入ミスが発生しやすくなります。
勤怠管理の精度を高めるためには、定時との比較による自動判定が効果的です。
今回は、タイムカードデータ(出勤・退勤時刻)をもとに、遅刻・早退を自動で判定して一覧化するマクロをご紹介します。
このマクロは基本的な構文だけで構成しているため、VBAの学習にも実務導入にも適しています。
遅刻・早退をチェックするマクロの具体例
次のコードは、出勤が9:00以降の場合に「遅刻」、退勤が18:00以前なら「早退」と判定し、F列に結果を表示します。
Sub CheckLateEarly()
Dim i As Long
Dim inTime As Variant
Dim outTime As Variant
With Sheets("勤怠データ")
For i = 2 To .Cells(.Rows.Count, 2).End(xlUp).Row
inTime = .Cells(i, 2).Value ' 出勤時刻
outTime = .Cells(i, 3).Value ' 退勤時刻
If inTime > TimeValue("09:00") Then
.Cells(i, 6).Value = "遅刻"
End If
If outTime < TimeValue("18:00") Then
If .Cells(i, 6).Value = "遅刻" Then
.Cells(i, 6).Value = "遅刻・早退"
Else
.Cells(i, 6).Value = "早退"
End If
End If
Next i
End With
MsgBox "遅刻・早退のチェックが完了しました", vbInformation
End Sub
このマクロは「勤怠データ」シートを対象に、次のように判定しています。
- B列:出勤時刻
- C列:退勤時刻
- F列:結果(遅刻・早退)
複数条件を組み合わせて結果を出力する処理の練習としても非常に有効です。
実装するメリット
このようなチェックマクロを導入することで、次のようなメリットがあります。
- 目視での確認ミスを防げる
- 判定基準を一貫させられる
- 手入力より圧倒的に早く処理できる
- 処理対象が多くても安定して動作する
- 基礎構文で書かれているため、応用しやすい
勤務時間の基準が部署や会社によって異なる場合も、時間の値(TimeValue("09:00")など)を変更するだけで柔軟に対応できます。
まとめ
タイムカードデータの確認業務は、ExcelとVBAで効率化できます。
- 定時と照合して、遅刻・早退を自動抽出
- 判定結果を一覧表示し、管理しやすく
- 実装がシンプルで、条件変更にも対応しやすい
日常業務で繰り返される勤怠チェックを、手間なく・正確に行える仕組みを整えておくことで、全体の業務効率が大きく向上します。
「人がやらなくてもいい作業」は、どんどんマクロに任せていきましょう。


