どうも、訪問介護のシフト管理に頭を抱える私です。
「もっと安く・楽にやりたい!」って思ったら、気づいたらAIと格闘することになってました。
最初は「エクセル関数でいけるやろ」とか甘く見てたけど、どうやらマクロじゃないと無理臭い…。
難しい(笑)
① 予定表マスタを作る
まずは元データを用意します。
「予定表マスタ」っていうシートに、最低限これだけ入れればOK:
- 日付
- 時間(開始・終了)
- 利用者名
- ヘルパー名
- サービス内容
「ここから先、マクロで自動化できるぜ!」っていうスタートラインですね。
作るのめんどいけど、これがないと始まらない。
② コード一例
たとえば「ヘルパーAさん」の予定をカレンダーに反映する部分はこんな感じ:
For i = 2 To lastRow
If wsMaster.Cells(i, "G").Value = "ヘルパーAさん" And wsMaster.Cells(i, "A").Value = cellDate Then
wsCalendar.Cells(i, j).Value = wsMaster.Cells(i, "F").Value & " : " & _
Format(wsMaster.Cells(i, "C").Value, "hh:mm") & "-" & _
Format(wsMaster.Cells(i, "E").Value, "hh:mm")
End If
Next i
「ヘルパーAさんの予定を自動でカレンダーに反映する」部分です。
ほかのヘルパーも同じ要領でOK。
これだけで「おおー、自動になっとる!」って感動できます(笑)。
※このコードは途中経過用です。時間が重なった場合や複数予定はまだ反映されません。
③ 貼り方・使い方
手順はこんな感じ:
- Excelを開く
Alt + F11
でVBAエディタを開く- 「標準モジュール」にコピペ
- 実行ボタンをポチッと押す
これでカレンダーに予定が反映されます。
「え、ほんまに動いた!」ってなる瞬間が最高。
④ 反映のさせ方・確認
マクロを実行すると、ヘルパー・利用者ごとにカレンダーが自動生成されます。
例:「ヘルパーAさんカレンダー」にはこんな感じで反映:
- 利用者名 : 開始時間-終了時間 : サービス内容
- 複数予定が重なる場合は
/
で区切って表示
列幅や行高さ、枠線も自動調整済みなので見た目もスッキリ。
ここまでできると「やった!進んだ!」ってなる。
⑤ 途中経過
正直ここから先、迷子です(笑)
- 時間や日付の一致チェックで手が止まる
- 複数予定が重なった場合の表示で悩み中
- 曜日や枠線の細かい見た目調整も思ったより手間
でも、12時間格闘してここまで形になったのは自分を褒めたい。
完成すれば、毎月のシフト作りがぐっと楽になるはず。
今日もまたAIと格闘しながら試行錯誤は続きます…!
「どうしろっちゅーねん!」って叫びながらも、地味にワクワクしてる自分がいる(笑)。
コメント