Excel-DNA を使うメリット
VBA を使うことに対して、Excel-DNA を使うことのメリットは大体こんな感じです。
- テストが容易
- コードの管理ができる
- 抽象度の高いコードが書ける
- 保守しやすい
一つずつ見ていきましょう。
テストが容易
VBA にも一応、VBAUnit などのテスティングフレームワークはあります*1。
しかし、VBA の言語自体の貧弱さもあって、あまり使いやすいものはありません。
さらに、ライブラリのような形で提供されるため、ツール連携などは絶望的です。
対して、Excel-DNA では通常の dll を作るだけですので、普通にテストを書くことができます。
先ほどの組み合わせの例にも、NaturalSpec というテスティングフレームワークを使ってテストを書いています。
コードの管理ができる
VBA でも頑張ればできなくはないですが、Excel-DNA では何も頑張る必要はなく、ごく普通にコードを管理することができます。
github に公開するのも簡単ですし、コードの検索性にも優れます。
また、エディタに Visual Studio が使えるのもうれしい点です。
無限ループに陥ってもコードを失わずに済みますし、Visual Studio に搭載されたさまざまな機能が使えます*2。
抽象度の高いコードが書ける
VBA では、オブジェクト型かどうかで代入を書き分ける必要があります。
高階関数も (たぶん) 使えませんし、標準では配列以外のコレクションは用意されていません。
それに対して Excel-DNA では、.NET Framework のライブラリや言語固有のライブラリが普通に使えますので、より高レベルな部分に思考を集中させることができます。
保守しやすい
VBA は小さいものでも保守が大変・・・そう思っていた時期が、俺にもありました。
先ほどの例を VBA で書いてみたものです。
なんかもう色々とひどいですよね。
ですが、ちゃんとした VBA プログラマが書くとこの通り・・・
いげ太さんマジ半端ないです。
ただ、
@bleis コードベースが大きく発展してくるとかなりしんどいことになるらしいですよ!(白目
2011-07-18 15:58:41 via web to @bleis
とのことなので、やはり大きいものになると、VBA だとうまく管理しないと破綻しそうです。
このように、開発面におけるメリットは大きいので、Excel-DNA が使える場面ではどんどん使っていきましょう!