top of page

​タグ一覧

配列処理(73)

階層化フォーム(33)

ファイル操作(28)

開発事例(22)

シート・セル操作(18)

図形操作(13)

コード自動生成(10)

ユーザーフォーム(9)

文字列操作(8)

設計思想(7)

開発効率化(6)

数学(6)

GAS(5)

アニメーション(5)

技術解説(4)

講座実施報告(5)

イミディエイトウィンドウ(4)

Googleスプレッドシート(4)

副業(4)

クリップボード(4)

条件付き書式(4)

その他(4)

ココナラ(3)

小説(3)

HTML(3)

JavaScript(3)

OneDrive(2)

イベントプロシージャ(2)

Enum(2)

PDF(2)

フリーランス(2)

リスキリング(2)

Outlook(2)

介護(2)

Discord(2)

シフト表(2)

LookerStudio(2)

日報(2)

カレンダー(2)

罫線(2)

パズル(2)

小ネタ(2)

コード解説(2)

クラスモジュール(2)

ステータスバー(1)

コード解析(1)

バックアップ(1)

可変長引数配列(1)

ブック処理(1)

スクレイピング(1)

スプレッドシート(1)

coconala(1)

リボン登録マクロ(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

リボン(1)

超勉強会(1)

スピログラフ(1)

図名描写(1)

連想配列(1)

溶接ロボット(1)

保育士(1)

楽天市場(1)

経理(1)

医療(1)

文書作成(1)

発注書(1)

ショートカット(1)

WebAPI(1)

色操作(1)

スーパー開発ショートカット(1)

ライブラリ処理(1)

放課後等デイサービス(1)

児童福祉支援(1)

学校(1)

UI(1)

CAD(1)

カーソル操作(1)

【開発事例】 Excel VBA × シフト表自動作成 – 障害者グループホーム業務の効率化|ナーススケジューリング最適化事例

更新日:1月7日

※掲載している内容・資料は、実際の案件に基づきつつ、個人・企業が特定できないよう内容を一部加工・再構成したものです。守秘義務に配慮し、実際の顧客情報等は一切含まれておりません。

【開発事例】 Excel VBA × シフト表自動作成 – 障害者グループホーム業務の効率化|ナーススケジューリング最適化事例

シフト表の作成は、「単に埋める」だけでは終わりません。勤務ルール・休日条件・連勤制限など、現場ごとの複雑な制約をすべて満たした上で、誰でも扱える形に落とし込む 必要があります。

本記事では、障害者グループホームの実運用を前提に、Excel VBAを用いて「シフト表の自動作成」「複雑なアルゴリズム制御」「使いやすいUI設計」の3点を同時に実現した開発事例 をご紹介します。


【背景】

役所へ提出する「勤務形態一覧表」に記載するシフト表を自動作成したい。

参考リンク↓


【仕様】

「設定」シート

  • 祝日一覧の入力

  • シフト種類(A,B,C,休,有)を色分けしつつ一覧を入力

  • 職種の一覧を設定

「設定」シート

「シフト表自動作成」シート

  • 年月を設定。◀▶ボタンで増減できる

  • シフト表の中で有給「有」を使用するかどうかをON/OFFで入力

  • 職員の一覧を職種、氏名で入力

  • 「自動作成通常」「自動作成ランダム」ボタンで、条件に一致したシフト表を自動作成する

  • 「次月繰越」ボタンで設定の月末分を次の月へ継承する

「シフト表自動作成」シート

【技術要素】

  • ナーススケジューリング問題を解くプログラムの開発

  • 選択入力フォームの実装

  • 条件付き書式


【シフト表の条件】

  • 作成は1ヶ月毎に行う

  • 週2回は公休

  • 「サービス管理者」は日・月は公休

  • 「管理者」は土・日は公休

  • 「管理者」はAのみ使用

  • 「サービス管理者」はAまたはBを使用

  • 「パート」は週2,3勤務

  • 「パート」は月曜日は公休

  • A,B,Cの振り分けはできるだけ均等にする

  • 日付の前後でC→A、B→Aは不可

  • 5連勤は不可


【実際の動作】

「自動作成通常」ボタンでシフト表を作成した場合。ちなみに処理には1秒弱程度。

  • 各条件を満足している

  • A,B,C,有,休は自動的に、職員別、日付別で合計している

「自動作成通常」ボタンでシフト表を作成した場合

上の状態から「次月繰越」を押すと、4月の最後の1週間の分が繰越されて5月分の作成画面になる。これで「月をまたいでの条件」もしっかり処理できるようになる。

「自動作成通常」ボタンでシフト表を作成した場合

上の状態からまた「自動作成通常」ボタンを押して5月分のシフト表を作成する

「自動作成通常」ボタンでシフト表を作成した場合

【ユーザービリティ(便利機能)】

職種はセルをダブルクリックして選択入力フォームが起動する

通常はドロップダウンリストの機能を実装するが、文字が小さくなったり操作性が悪かったりとするので採用しない

【ユーザービリティ(便利機能)】

作成されたシフト表を手動で修正する場合も、ダブルクリックでシフトを選択入力できるフォームが起動する。選択ボタンは着色されて操作性もよい。

【ユーザービリティ(便利機能)】

作成されたシフト表は完全に条件を満足できない場合(人数が足りない)場合は赤く着色されて、ユーザーが分かりやすいようにする。

【ユーザービリティ(便利機能)】

Excel VBAによる業務自動化・ツール開発をご検討の方へ

​"脱Excel"の前に、現状のExcelの潜在能力を120%発揮してみませんか?

Softex-Celware

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page