Excel VBAを使った社員勤怠表の自動作成とその応用例

Excel VBAを活用して、自動で社員の勤怠表を作成する方法について解説します。VBAの力を使って、効率的にデータの取り扱いを行いましょう。この記事では、基本的な勤怠表の自動作成方法から、さまざまな応用例まで詳しく取り上げます。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

Excel VBAを使った勤怠表の自動作成の基本

VBAは、Excelの自動化のためのプログラミング言語です。一度設定してしまえば、面倒な作業を自動で行ってくれるので、日常の業務効率が大幅に向上します。


Sub 勤怠表作成()
    Dim i As Integer
    For i = 2 To 32
        Cells(i, 1).Value = i - 1 & "日"
        Cells(i, 2).Value = "出勤"
        Cells(i, 3).Value = "退勤"
    Next i
End Sub

上記のコードは、日付と「出勤」「退勤」の項目を自動で入力するVBAのマクロです。このコードを実行することで、1日から31日までの勤怠表が瞬時に作成されます。

コードの詳細解説

– `For i = 2 To 32`:2行目から32行目までの範囲での繰り返し処理を開始します。
– `Cells(i, 1).Value`:i行目の1列目(つまりA列)に値を入力します。
– `i – 1 & “日”`:繰り返しの度に、1から31までの日付を「日」とともに入力します。
– `Cells(i, 2).Value = “出勤”`:i行目の2列目に「出勤」と入力します。
– `Cells(i, 3).Value = “退勤”`:i行目の3列目に「退勤」と入力します。

応用例

応用例1:祝日の自動反映

勤怠表には祝日も考慮する必要があります。以下は、指定した祝日を自動で反映するコードの一例です。


Sub 祝日反映()
    Dim Holidays As Variant
    Holidays = Array("1/1", "1/2", "4/29", "5/3", "5/4", "5/5", "12/25")
    Dim i As Integer
    For i = 2 To 32
        If IsDate(Cells(i, 1).Value) Then
            If Not IsError(Application.Match(CDate(Cells(i, 1).Value).Month & "/" & CDate(Cells(i, 1).Value).Day, Holidays, 0)) Then
                Cells(i, 4).Value = "祝日"
            End If
        End If
    Next i
End Sub

応用例2:週末の色分け

土日を色分けして視認性を向上させる方法です。


Sub 週末色分け()
    Dim i As Integer
    For i = 2 To 32
        If Weekday(CDate("2023/1/" & i - 1)) = 1 Or Weekday(CDate("2023/1/" & i - 1)) = 7 Then
            Cells(i, 1).Interior.Color = RGB(220, 220, 220)
        End If
    Next i
End Sub

応用例3:勤怠の集計

出勤日数や平均労働時間など、勤怠の集計を行う方法です。


Sub 勤怠集計()
    Dim 出勤日数 As Integer
    Dim i As Integer
    For i = 2 To 32
        If Cells(i, 2).Value = "出勤" And Cells(i, 3).Value = "退勤" Then
            出勤日数 = 出勤日数 + 1
        End If
    Next i
    Cells(34, 2).Value = "出勤日数"
    Cells(34, 3).Value = 出勤日数
End Sub

まとめ

Excel VBAを活用することで、社員の勤怠表を効率よく作成することができます。基本的な自動入力から、祝日の反映、週末の色分け、勤怠の集計など、さまざまな応用例を通じてVBAの強力な機能を活かしましょう。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次