Softex Celware

ExcelVBA専門技術ブログ

VBA開発事例紹介 No.3 (介護現場のシフト表自動作成)

今回は実際に過去に対応したExcelVBAでの開発事例を紹介

あなたの職場でもお役立ちできるヒントとなれば幸いです。

 

紹介動画

今回の事例を動画でまとめております。動画はわちょんさん(わちょんのゆっくりIT - YouTube)に作っていただきました!

www.youtube.com

概要

内容はタイトルの通り「介護現場のシフト表自動作成」ツールの開発

依頼の背景として

 「とにかく作成が大変!!

とのこと。

 

具体的に次のような感じ。

  • スタッフの希望を全部満足できない(スタッフは30名)
  • シフトの種類が多い(17種類)
  • 条件が複雑(のちほど詳細を説明)

 

作成が遅れるとスタッフ個々人の来月の予定が立てられない。

 

ごめんね。来月の休みがまだ分からないの...

 

これでは家族のレジャー、彼氏彼女とのデートの予定も立てられません。

 

これらの悩みを一挙に解決したのが今回の開発事例になります。

 

詳細条件

まずシフト表作成における詳細の条件を並べます。これらを満足するようにシフト表を自動生成します。

  • 職種は「介護職」と「リハビリ職」の2種類。「リハビリ職」は「作業療法士理学療法士」に分かれる
  • 介護職、リハビリ職で1日あたりの必要なシフト配置人数が異なる
  • 最大の連続で出勤できる日数は5日間(労働基準法
  • 1人当たりの休日日数は指定が可能
  • 1人当たりの夜勤の日数は介護職は5日、リハビリ職は2日
  • 各スタッフの希望は「希望休」か「有休」のみ受け付ける
  • シフトの種類は「休」「明」「夜A」「夜B」「遅A」「遅B」「遅C」「早A」「早B」「中A」「介A」「介B」「出」「有介」「有リ」で「希望休」「有休」も含めて17種類
  • 各シフトの種類で1日に配置する人数が決まっている(希望休、有休、明、出は除く)図1
  • 夜勤である「夜A」「夜B」は不可のスタッフがいる
  • 早番「早A」「早B」は連続しない
  • 遅番「遅A」「遅B」「遅C」は連続しない
  • 夜勤「夜A」「夜B」は連続しない
  • 遅番「遅A」「遅B」「遅C」の次の日には早番「早A」「早B」は割り振らない
  • 夜勤「夜A」「夜B」の次の日には早番「早A」「早B」は割り振らない
  • 「希望休」「有休」「休」の次の日には「明」は割り振らない
  • 「介A」「介B」は男女ペアにすること
  • 最後に余ったところは「出」を配置する

 

図1:各シフト種類の配置人数

 

 

完成品仕様

シート全体の構成は図2の通り。そのままだと見えないので拡大して表示を推奨。

図2:シート全体構成

 

次に各機能別に説明します。

設定の入力

シフト表作成における条件人数などの各種設定を入力する部分です。

  • どの年月のシフト表を作成するか
  • 各シフトの1日当たりの配置人数。介護職、リハビリ職での有無「○×はダブルクリックで切り替えが可能」
  • 最大連勤日数
  • 1人当たりの休日日数
  • 夜勤日数。介護職、リハビリ職で別
  • 各スタッフの情報(職種、性別、夜勤有無、社員番号、社員氏名)

図3:設定の入力

 

自動作成機能

本ツールのメイン機能の自動生成機能について

  • シフト表初期化」:出力済みのシフト表を初期化します。そこから希望などをまた入力します。
  • シフト表作成(通常)」:通常作成モードで毎回同じ結果でシフト表が作成されます。
  • シフト表作成(ランダム)」:ランダム作成モードで毎回異なる結果でシフト表が作成されます。

 

 

図4:自動作成機能

 

ちなみに、出力はで可能です。

www.youtube.com

希望入力

「希望休」「有休」を入力する部分のUIです。

対象のスタッフ、日付のセルを選択した状態で「希休」「有休」ボタンを押すと、そこに「希望休」「有休」が入力可能です。キーボード操作が不要で、効率かつ正確な入力が可能になります。

入力した希望は保存および読込も可能です。

図5:希望入力

 

条件チェック

出力されたシフト表が条件通りかを確認する部分です。

各シフトの一日当たりの人数を計算します。

各スタッフにおけるシフトの担当回数を計算します。

条件と満足していないところは自動的に赤く着色してエラーと分かるようになっています。

図6:条件チェック

 

修正機能

出力されたシフト表を後から修正する機能です。

特定のセルをダブルクリックすると、選択入力用のユーザーフォームが起動します。

キーボード操作不要なので効率かつ正確に入力が可能になっています。

図7:修正機能

 

技術解説

今回のシフト表作成における技術は超門外不出ですので非公開です。

 

これ以外の対応事例

今回は介護現場でのシフト表でしたが、上記の技術を利用した実際の対応した案件は次のようなものがあります。

ご依頼する際はぜひ参考にしてください。

  • パチンコホールのホールスタッフのシフト表(人数100人、シフト20種類、1ヶ月)
  • 病院の当直表(人数40人、3か月間で均等に割り振る)
  • クリニックのシフト表(常勤、非常勤、出勤時間帯バラバラ、曜日別の出勤パターン設定)
  • 保育園のシフト表(担当クラス割り当て、イベントなど考慮)
  • 訪問介護のシフト表(移動時間帯などを細かく設定、利用者とスタッフの相性も考慮)

 

PR

ExcelVBAでのツール開発を承っております。(対応実績400件突破 2023年9月)

お気軽にご相談ください。