機械点検やシフト管理では、Excelマクロを活用して交互に役割を割り当てることで、作業効率と管理の正確性を大幅に向上させることができます。本記事では、月単位で昼勤務と夜勤務を縦に配置し、日付ごとに2つのチームが交互に担当する役割表の作成方法をご紹介します。
役割表の基本構造
縦に上段を昼勤務、下段を夜勤務に設定し、横方向には1日から31日までの日付を並べます。役割一覧は特定の列に入力しておき、マクロで自動的に各日付に交互割り当てを行います。
この構造により、昼夜勤務の交代が一目で分かる表が完成します。
マクロの設計ポイント
交互割り当てを実現するには、ForループやModulo演算子を使用して、チームを順番に割り振るロジックが有効です。
例えば、日付インデックスを2で割った余りを利用し、余り0の場合はチームA、1の場合はチームBを割り当てる方法が基本になります。
具体的なマクロ例
以下のような簡単なVBAコードで交互割り当てが可能です:
Sub AssignShifts()
Dim day As Integer
Dim lastCol As Integer
Dim startRow As Integer
startRow = 2 ' 昼勤務開始行
lastCol = 32 ' 1~31日
For day = 1 To lastCol - 1
If day Mod 2 = 1 Then
Cells(startRow, day + 1).Value = "Team A"
Cells(startRow + 1, day + 1).Value = "Team B"
Else
Cells(startRow, day + 1).Value = "Team B"
Cells(startRow + 1, day + 1).Value = "Team A"
End If
Next day
End Sub
カスタマイズのポイント
役割一覧が多い場合や、特定のチームが連続して担当する日を設定したい場合は、配列を利用して柔軟に割り当て順序を変更することも可能です。
また、休日や特定日を除外する条件を追加することで、実務に即したシフト表を作成できます。
まとめ
Excelマクロを活用することで、月単位の昼夜交互勤務の役割表を効率的に作成できます。基本のForループとModulo演算子を理解し、必要に応じて条件分岐や配列を組み合わせることで、実務向けの柔軟なシフト表が完成します。


コメント