リストHOME  リストOpen Source

休暇申請書

概要

 今回、紹介するのは、異なるブックに実装されている関数を呼び出すサンプルコードです。具体的には、Application.Runメソッドを使って、他ブックの関数を呼び出しています。


 サンプルは、会社等で利用できる休暇申請書の入力や印刷が可能なブックと、それに必要なデータを異なるブックに保存した、アプリとデータを分離したソフトウェア構造となっています。

休暇申請書のソフトウェア構造


 データが記述されている側のブックが更新されたときに、休暇申請書アプリ側の関数を呼び出し、アプリ側で保持している情報を、同時に更新するような仕組みにしてあります。システム屋さんは、このように動作するプログラムの振る舞いのことを、『同期をとる』とよく言います。


 実用的なサンプルにしたほうが、理解がし易いのではないかと考え、休暇申請書をサンプルに採用しました。良かったら使ってみてください。


 ソースコードは、Microsoft社の製品 エクセル向けに書いたものなので、利用するには、ご使用のコンピュータに、エクセルがインストールされていることが、必須条件です。


 以下は、サンプル画面です。

休暇申請書のサンプル


サンプルデータについて

 サンプルのデータは、私が作成した架空の情報です。サンプルデータに含まれる個人名などの情報は、実在の人物とはまったく関係ありませんので、あらかじめご了承ください。


技術ポイント



改善案

 アプリ側は、データベースが変更された時と、起動時にのみ、データベースのデータを取得するように設計しています。VBAで開発していると良くあることなのですが、デバッグモードになると、すでにメモリに確保されている情報が、クリアされてしまう場合があります。そうなると、社員選択画面を表示しても、何も表示されなくなってしまいます。


 ですので、マクロなどで、データを再取得する、すべを実装しておいた方が、無難かもしれません。一般的には、今回のように、データベースが変更されたときだけ、再取得すればよいのですが、VBAの場合、簡単にデバッグモードに入れてしまうので、社員選択の画面を表示する時には、常に、データを再取得するように、実装するのも、ありかもしれません。


 データの大きさや環境などの状況に応じて、どのように実装するのが望ましいか、よく考えて設計しましょう。



ダウンロード



サンプルデータについて

 サンプルに含まれるデータは、私の創作によるものです、サンプルデータに含まれる個人名、会社名などの情報は、実在の人物とはまったく関係ありません。



免責事項

 作者は、本ソフトウェアの使用または使用不能から生じるコンピュータの故障、情報の消失、その他あらゆる直接的及び間接的被害に関して一切の責任を負いません。



不具合の報告

 ご使用にあたり、改善の要望、不具合の発生等ありましたら、画面下のアドレスまで、ご連絡頂きますよう、宜しくお願いいたします。ご面倒、ご不便をお掛けしますが、宜しくお願いいたします。




休日判定・ページのフッター
管理者のメールアドレス