memorandums

日々のメモです。

VBAはもう進化しないの?

MS-Office製品にタダ!?でついてくる言語および開発環境VBA。前職で開発支援ツール(自動生成等)を作るのにExcel+VBAを多用していました。シミュレーションツールや解析ツールなんかもVBAでお手軽に作れちゃいました。そんな経験からVBAは今でも好きなRADツールの一つです(さすがに最近はメインでは使いませんが。。。macではマクロは動きませんしね。。。)


今、企業向けのシミュレーションソフトを作っていて、実はこのExcel+VBAでプロトタイプを作っています。コード自体は2年前くらいの受託研究で開発したものなので、今見るとさすがに下手な書き方をしているところも多々あります。何よりVBAではinterfaceや継承が使えないため、関数指向のプログラムになっているため、機能のわりに非常に長ったらしいコードになっています。そのコードを改めて見て「これは。。。メンテできないなぁ。。。」と感じます。


文字列処理が多いのでRubyあたりで書けばいいのかもしれません。win32oleを使えばOfficeファイルを操作できるようですが、シートやグラフ処理などどこまで記述できるのか不安があります。また、RubyJavaなど外部言語を利用するとインストールの手間が増えるのでできれば避けたい。


いっそのことブラウザベースにしてしまえばいいのですが、機密情報を扱うシミュレータのためなかなかオープンネットワークの利用は難しい。。。(技術的には問題ないでしょうけど)


できればVBAが進化してC#を採用してくれれば楽なんだけどな。。。と思うばかりです。いろいろと思惑があるのでしょうけど、以下の記事の通りで、今でもVBAユーザは少なくはないなずです。ぜひ、進化を検討して欲しいです>Microsoftさん

Link: Working with VBA and Visual Studio Tools for Office


VSTOの利用も検討したことがありますが、Officeファイルの他に外部DLLをインストールする必要があるなら、他の言語でも大差ないんですよね。。。VBAが現場で評価される理由は「1ファイルで持ち運びができること」なんだと思うんですが。