Excelでシステムを作りたい場合、考慮しておく点があるので簡単に記載する。

パソコン1台でしか利用しないなら、特別な考慮は要らない。仮にデータベースと連携するとしても、そのデータベースがそのパソコンにあろうが他のパソコンにあろうが、はたまたサーバーにあろうが、利用者は1名だから。


数人で使うときで、データを共有する場合はExcelの共有機能を使うのもよい。もし更新者が1人であとは閲覧するだけならそれでよいが、複数の人が更新をする場合、データの安全性を考えると、データはデータベースで管理し、Excel上にはデータベースからデータを読み込ませる方式の方が安全である。

なお、データベースにはテーブルをロックする機能がある。しかし、Excelシート上に展開したデータをロックしたまま操作し、また書き戻すようなケースではロックが長時間になるため、譬えレコードロックを行ったとしても(レコードロックという名でレコードよりも粗いレベルのロックが行われるDBMSもあるし、レコード数によってはロックレベルが自動的にエスカレーション、つまりロック粒度が粗くなるDBMSもある)想定外のレコードをロックしてしまう場合があるのでよろしくない。
この場合、データベースのロックを使わないで、各レコードに「利用状態」のようなものを持つなどして、使用中か否かを判定したりすることで対応するなど、別の手を考えた方がよい。また、そのためにテーブルの構造も工夫する必要があるだろう。

また、アプリケーションのバージョンアップの問題もある。バグを修正したら各パソコンに配布する必要があるが、確実に変更を反映するには手作業を極力廃止する方がよい。そうすると、起動時に実行するアプリを用意し、それが最新Excelブックを取得した上でブックを起動するようにするのが望ましい。なお、この起動ツールにより、セキュリティレベルが高くてもマクロの実行が可能な状態で起動できるようにもなる。ただし、起動ツールとして使うプログラム言語によってはそうならないので、見極めが必要である。

参考まで、上記の形式はExcel VBAでアプリケーションを作り込むため、クライアント側に画面と処理、サーバー側はデータベースのみ、となる。サーバー側にもアプリケーションを置くケースは、どう連携させるかをよくよく検討する必要がある。

なお、Excelのバージョンには気を付けたい。特にExcel 5 と 95 の間、97 と 2000 の間、2003 と 2007 の間はオートシェイプなどのオブジェクトの互換がないものがあったりするので注意されたい。パソコン間でバージョンを揃えるのが望ましいが、どうしても、という場合は、バージョンの差異による不具合の発生の可能性は示唆しておくべきだろう。

以上、構築事例から要点を引き抜いて簡単に纏めた。このくらいは配慮したいところだ。