Excelで業務アプリを作る際、どういう構成にすればいいか。経験上の意見を書く。Excelのスプレッドシート上のデータをデータベースに格納する、という前提である。

 

限られた範囲内でしか利用しない場合

 ・クライアント(Excel) + DBサーバー

の形式で良いだろう。サーバー側にアプリを用意して、としても良いだろう。しかし、どこまでをサーバーのアプリとし、どこまでをExcel VBAとするのか、この線引きで悩むことになる。ならばまずはExcel VBA で組んでしまおう。

バッチ処理の起動でもしない限り、ほぼ問題なく実装可能だろう。

 

広範囲になる可能性がある/将来的に拡張がある/より安全な運用を行う などの場合

 ・クライアント(Excel) + Web/APサーバー + DBサーバー

の形式がいいだろう。外部公開されるか否かは別として、DBサーバーを見えるところに置くのはよろしくない。Web/APサーバー上の言語は何を選択するのかによってサーバーの構成は変わるだろうが、ExcelからはAPIを呼ぶ。仮にExcel以外のインターフェースに差し替えたくなった場合でも、クライアント側の処理を差し替えれば済む。

ただ、設計やら実装やらが先ほどのものより余計に掛かるだろう。

 

簡易的/お試しには前者でいいだろうけれど、基本的には後者をお薦めしたい。