機械点検の役割表を2つのチームで交互に割り当てたい場合、Excelマクロを使うと月単位のスケジュールを効率的に作成できます。昼勤務と夜勤務を縦に、1日から31日を横に配置し、土日は除外する設定も可能です。
基本レイアウトの作成
まずExcelのシートに縦軸として「昼勤務」と「夜勤務」、横軸として1日〜31日を設定します。役割の一覧は別の列に入力しておきます。
土日を除外する場合は、日付に対応した曜日関数(=TEXT(日付セル,”ddd”))を利用して条件付きでマクロ内でスキップさせます。
マクロで交互割り当て
マクロではForループを用いて、日ごとに昼夜勤務の担当を交互に割り当てます。例えば奇数日はチームA、偶数日はチームBといった方式で振り分けます。
実例として、役割リストを配列に格納し、勤務日に対応するセルに順番に書き込むことができます。土日の場合はContinueステートメントでスキップします。
土日を除外する方法
日付セルから曜日を判定し、土曜(Sat)や日曜(Sun)の場合はマクロでセルを書き込まないように制御します。これにより自動で平日のみ役割が割り当てられます。
また、条件付き書式を併用すると、土日セルをグレーアウトするなど視覚的にわかりやすくできます。
マクロの実装例
Sub AssignRoles()
Dim i As Integer, j As Integer
Dim roles() As String
roles = Array(“チームA”,”チームB”)
For i = 1 To 31
曜日判定コードを入れて土日をスキップ
For j = 1 To 2 ‘昼と夜
セルにroles((i+j) Mod 2)を書き込む
Next j
Next i
End Sub
まとめ
Excelマクロを使えば、2つのチームで交互に昼夜勤務を割り当てる月間スケジュール表を簡単に作成できます。土日を除外し、役割リストを配列化することで自動化が可能です。
この方法を応用すれば、異なる勤務パターンや役割人数の増減にも柔軟に対応でき、効率的にスケジュール管理が行えます。


コメント