今回のテーマはExcelです。Excelは日本のITを根底から支えている存在といっても差し支えないでしょう。開発者にしてもExcelがなかったら業務が回らないという方はとても多いです。
必須のExcelだからこそ、逆にExcelの便利ツールを知り、使いこなすことができれば生産性を大幅に向上させることも可能でしょう。ということで今回はExcelの便利な(?)使い方とオープンソース・ソフトウェアの紹介です。
業務システムのフロントエンド
Webでシステムを組んでいると大抵、マスタメンテナンスや検索結果においてExcel並の機能が求められます。正直、そこまで作り込んだとしても使われる機能はごくごく僅かであり、工数の割に合わないことが殆どです。
そこで簡易的なシステムであればいっそExcelをフロントエンドとして、RESTfulなAPIで対話するのが良いのではないでしょうか。集計系はCSVダウンロードではなく、XML出力にして直接Excelで読み取ってもらう方が楽なケースは多々あります。
VBAの呪縛を脱する
Excelで帳票作成を考えた時に必ずVBAが話題になります。しかしコードがスパゲティになりやすく、メンテナンスも考えるととても面倒です。そこで使えるのがデータシートと帳票シートの二つに分けたExcelファイルです。昔から良く知られていると思いますが、未だにVBAごりごりなケースをよく見るので。
データシートにはシステムから出力したCSVをそのまま貼付けます。後は帳票シート側で "=!データシート.A1" (こんな感じでしたっけ?)のように記述しておくだけです。連続帳票の場合、多少VBAを記述しますがデータロジックは全てVBAから切り離せるのでメンテナンスは楽になるでしょう。
クラウドに移行する
最近はMac OSXも現場で使われるようになっているので、あえて別ライセンスのMS Officeを購入するのをためらうことがあります。Numbersの互換性は高いとはとても言えません。そこでいっそクラウドに移行してWebベースで作業するのはいかがでしょう。
とは言えOffice.comではVBAが使えません。選択肢としてはGoogleスプレッドシートでApp Scriptを覚えるか、Zehoスプレッドシートを使う手があります。
画面はWebで
昔はExcelとAccessは連携可能で、Accessの中にExcelの表をリンクさせて編集が可能でした。これにより、Excelの表をAccess上で分かりやすいGUI画面を作って作業できたのですが、特許の絡みで現在はできなくなっています。
Excelで画面を作るのは絶望的に難しいのではないかというのが個人的な感想です。そのため、ユーザが使う画面はWebで、その結果をExcelファイルに追記していく形はありな気がします。最近ではサーバサイドでもExcelファイルを操作できるようになっていますので、データベース代わりに使ってみると意外と便利です。