放課後等デイサービスで使えるExcel VBAツールをいくつか自作してきました。実際の現場で使っているツールを、今後順次ご紹介していきます。
個別のツールの具体的な内容に入る前に、まずは「すべてのツールに共通する仕組み」や「データの持たせ方」、「設計の考え方」についてご紹介します。
「どのような仕組みでツールを作っているのか」「VBAでどのようなツールが作れるのか」といったことを知っていただくと、これからご紹介するツールもより分かりやすいと思います。
画面と操作の設計
放課後デイの現場では、パソコン操作が得意ではない職員が使うこともあります。また、日々の業務の合間に使うことを考えると、できるだけ迷わず操作できることが大切です。
そのため、私が作るVBAツールでは、操作する人が迷わないように、画面の構成やボタンの配置などをできるだけシンプルにしています。
シートを1つの画面として設計
Web系の事務処理プログラムでは、画面ごとに機能が分かれていることが多くあります。私が作るVBAツールでも、Excelのシートを1つの画面として扱い、Web系の事務処理プログラムに近い操作感になるように設計しています。
入力欄や実行ボタンなどを分かりやすく配置し、Excelでありながら、まるで専用ソフトを操作しているような感覚で使える画面を目指しています。
普段から使っているExcelと同じような感覚で、スムーズに操作できるようにしています。
ボタン操作を中心にしたシンプルな操作
VBAの処理は、基本的に画面上のボタンをクリックして実行できるようにしています。
入力する場所を明確にする
入力する場所がひと目で分かるように、画面のレイアウトを工夫しています。ツールによっては入力欄を太枠で囲むなど、入力する場所とそれ以外の場所を区別しています。
また、入力する必要のないセルには保護をかけ、誤って内容を書き換えてしまわないようにしています。
データの持たせ方と管理の仕組み
すべてのデータを1つのExcelファイルにまとめるのではなく、データの種類ごとにExcelファイルを分けて管理しています。
1つのファイルに多くのデータを詰め込むと、ファイルサイズが大きくなったり、管理が複雑になったりするためです。そこで、私のVBAツールでは、データの種類に応じて、ツール本体とは別のExcelファイルやツール内のシートに分けて管理しています。
データごとにExcelファイルを分けて管理
日々の実績データやマスタ情報は、すべて1つのファイルにまとめるのではなく、データごとに個別のExcelファイルに分けて管理する設計にしています。
これにより、1つのファイルにデータが集中するのを避け、バックアップや整理もしやすくしています。
また、データの種類によっては年度ごとにファイルを分けて管理するなど、用途に応じて管理方法を変えています。
「設定シート」でファイルのパスを集中管理
ツールとデータのファイルを分けているため、データファイルの保存場所(ファイルパス)を設定する必要があります。
そこで、すべてのツールに「設定シート」を用意し、参照するデータファイルの保存場所(ファイルパス)を一覧で管理する仕組みにしています。
データファイルの保存場所やファイル名を変更した場合でも、プログラム自体を書き換えることなく、設定シートのパスを変更するだけで対応できるようにしています。
ツール内のシートもデータの保持に活用
基本的なデータは外部のExcelファイルで管理していますが、プログラムの処理に必要な一部のデータは、ツール内の非表示シートに保持しています。
また、処理の途中で一時的に使う値などは、処理を行うシートの非表示セルに保持し、VBAから読み込んで活用することもあります。
このように、データの種類や用途に応じて、外部ファイルとツール内のシートを使い分けています。
内部のコード設計
ツールを実際に動かす裏側のプログラム(VBAコード)についても、後から修正やカスタマイズがしやすいように、役割ごとに分けて構成しています。
一つの場所にすべての処理を詰め込むのではなく、処理の内容に応じてコードを分けることで、後から見直したときにも分かりやすいようにしています。
具体的には、以下のようなルールでコードを分けています。
処理の役割分担(シートモジュールと標準モジュールの使い分け)
コードの管理をシンプルにするため、処理の内容によって記述する場所を明確に分けています。
シートモジュール(各シートごとのコード)
ボタンがクリックされたときの動作や、そのシート固有の画面制御など、シートに密接に関わる処理を記述しています。
標準モジュール(共通の処理)
共通の定数や、複数のシートから共通で呼び出す処理、ファイルの読み書きなどを標準モジュールにまとめています。
後から修正・カスタマイズしやすい設計
このように処理ごとに役割を分けておくことで、「どこに何の処理が書いてあるか」が分かりやすくなります。
そのため、新しい機能を追加したり、導入する事業所の業務に合わせて一部の処理を変更したりする場合も、必要な部分に手を加えやすくなります。
後から修正やカスタマイズが必要になることも考えて、メンテナンスしやすい構成にしています。
まとめ
今回は、放課後デイ向けに自作しているVBAツールの「共通の仕組みや設計」についてご紹介しました。
日々の事務作業で使いやすく、後から修正やカスタマイズもしやすいように、以下のような設計にしています。
・画面と操作の設計:Excelのシートを1つの画面として使い、ボタンを中心に操作できるようにしています
・データの持たせ方:データごとにExcelファイルを分け、「設定シート」で参照先を管理しています
・内部のコード設計:シートモジュールと標準モジュールを使い分け、処理ごとにコードを整理しています
今後このブログでは、実際に放課後デイで使っている個別のVBAツールを順番に紹介していきます。
