子どもが通っている放課後デイから、毎月利用予定表(翌月の利用予定を記入する)を紙でもらっています。
その利用予定表はカレンダー形式になっていて祝日には祝日名が書かれているんですが、ときどき間違ってました。
間違いが続いたときに「配布する前にチェックしないのかな?」「これどうやったら間違えた利用予定表じゃなくなるんだろう?」とSEの視点から考えてみました。
利用予定表についてExcelで作っていると仮定して、どういう作りになっているか想像してみました。
1つのExcelファイルの中に原紙シートが先頭で、後続に利用者ごとのシートがあって先頭シートの値を参照するようになっているだろうなと思い浮かびました。
後日、実際に放課後デイの先生に確認してみると、予想は当たっていて思ったとおりでした。
私からすると原紙シートが確実に毎月手作業で修正されていれば、間違った利用予定表をもらうことはない訳ですが、現実問題ときどき間違ったものが渡されていました。
毎月手作業で原紙シートを修正するのも手間だし、利用者ごとのシートは固定で利用する曜日列が太枠で囲まれていたので年度変わりの時期は変更がある利用者のシートを修正したり、利用者シートの追加や削除する作業は地味に大変だなと思いました。
そこで私だったらこの利用予定表どういう風に作るかなと考えて思いついたものをExcel VBAを駆使し、実際に作ってみました。
プログラムを作るまでのプロセス
実際にどのようなプロセスを経てプログラムを作っていったのかをご紹介します。
①まずは現在の仕様を洗い出す
- 利用予定表は、表の基準日を変更すると年月が自動で更新され、その月のカレンダーに日付が正しく配置される仕組みになっている
- 表の使用しない日付セルの背景色はグレーになっている
- 利用者ごとのシートは利用者名が編集されていて、固定で利用する曜日の列が太枠で囲まれている
- 祝日がある月は、祝日の日付を赤字に修正し、祝日名を日付の下に赤字で編集する
②原紙シートを作成する
毎月もらっている利用予定表を見ながら原紙シートをつくりました。
③プログラムで使うデータファイルを作成する
プログラムで祝日を編集したり、原紙シートをもとに利用者ごとのシートを作成する際に、利用者情報が必要になるのでそのデータを登録するファイルを作りました。
【作ったファイル】
- 利用者情報を登録するファイル
- 祝日を登録するファイル
④プログラムを作成
- メインシートを作り、作成したい年月の入力欄とプログラムを実行する『作成』ボタンを配置する
- ②で作った原紙シートをメインシートの後に追加する
- 『作成』ボタンがクリックされた場合、③のファイルを読み込んで①の仕様をプログラムで実装する
作成したプログラムの概要
このプログラムは、マスタデータと原紙シートを組み合わせて、一人ひとりの利用予定表を自動で作成します。


データベース(データソース)
Excelファイルに登録した以下の2つのデータを読み込み、プログラムで活用しています。
| ファイル名 | 内容の概要 | 具体的な項目例 |
|---|---|---|
| 利用者マスタ | 利用者の基本情報を管理 | 氏名、固定曜日、送迎時間、送迎場所 など |
| 祝日長期休暇データ | 祝日と長期休暇を管理 | 祝日日付、祝日名、夏休み・冬休みの期間 など |
プログラムの処理の流れ
このプログラムは、大きく分けて4つのステップで動作します。
これまで手作業で行っていた作業を、VBAによって一気に自動化する仕組みです。
① 作成年月の指定と実行
まず、作成したい『年月』を入力します。
年月を指定して『作成』ボタンをクリックするだけで、全自動の処理がスタートします。
②原紙シートの自動セットアップ
次に、ベースとなる「原紙シート(カレンダー形式)」を、入力した年月に合わせて自動的に編集します。
- 日付の更新
表の基準日を編集し、1日から月末までの日付を正しく配置します。 - 祝日の反映
データベース(祝日長期休暇データ)と照合し、祝日名を入力するとともに、フォントの色を自動で変更します。
③ 出力用の新規ブック作成
作成年月ごとに、出力専用の新しいExcelファイルを自動で作成します。
ファイル名に作成年月を含めているため、ファイルを開かなくても、いつの利用予定表のファイルなのか一目で分かります。
出力後、不要になったファイルは削除できます。
④ 利用者ごとのシート生成(一括コピー)
最後に、メインとなる「利用者ごとのシートの一括作成」を行います。
「利用者マスタ」に登録されている人数分だけ、ステップ②で整えた原紙シートを新しいファイルへコピーしていきます。
同時に、各シートに利用者マスタから読み込んだ情報を反映します。
- 氏名欄に、マスタから取得した名前を入力します。
- 固定曜日に該当する列を太枠で囲み、曜日セルと日付セルの背景色を変更します。
これにより、一人ひとりの専用の利用予定表を自動で作成できます。
固定曜日の曜日セルと日付セルの背景色を変更する仕様は、私のアイデアで追加しました。
プログラムを導入した後の効果
作ったプログラムを放課後デイの先生に見せたところ、実際に放課後デイで使ってもらうことになりました。
このプログラムを導入したことで、年度替わりに行っていた利用者ごとのシート修正作業や利用者の増減によるシートの追加・削除作業が不要になりました。
また、毎月の手作業による基準日の編集や、祝日の編集漏れ、入力ミスもなくなりました。
現在では、『年月』を入力して『作成』ボタンをクリックするだけで利用予定表が自動で作成され、あとは印刷して配布するだけです。
まとめ
今回は、DX化に関わるきっかけとなった、私が初めて放課後デイ向けにExcel VBAで作成した「利用予定表自動作成プログラム」についてご紹介しました。
以前は毎月、原紙の基準日の編集や祝日名の入力を手作業で行っていましたが、このプログラムを導入したことで、今ではボタンをクリックするだけで、全員分の正確な利用予定表を自動で作成できるようになりました。
このプログラムを作成したことで、作業時間を短縮でき、手作業による修正漏れや入力ミスも防げるようになりました。
通っている放課後デイにとっても、私自身にとってもプログラムを作って良かったなと思います。
📢【追記】実務に合わせてさらに改良しました!
このプログラムをしばらく運用してみて、また思いついたアイデアがあったのでプログラムを改良しました。
最新の改善版プログラムについては、以下の記事で詳しく紹介しています。

