Excel VBA 事始め
他言語で開発経験を積んでいると、Excel VBAが非常にとっつきにくい。実はExcel VBAを『開発言語』と捉えると、とても奇特な環境でなのである。というのは、Excel ワークブックというのは、
- 開発用のエディタ内蔵
- デバッグ環境
- 配布用実行ファイル
の3つを同時に満たしているからだ。通常の開発言語は、『統合IDE』と称して上2つが、一緒になっていることがあるが、さすがに配布ファイルも一緒になることはない。しかし、Excelはそうなるのだ。これは、自分の書いたプログラムも一緒に配布されてしまう、ということを意味する。いちようコードは暗号化できるので、利用者側に見せないようにすることはできるが、なんとも気持ち悪い感じがしてしまう。
また、Excel VBAの特異な点については、ユーザー環境で確実に実行される保証が無い、ということだろうか。これは、1度は見たことがあると思うが、VBA
付きのファイルを開くと、マクロがありますが実行しますか? というダイアログが表示されてしまうことだ。これでNoを選択されてしまうと、どうにもならない。よく、マクロを強制的に実行させる方法はありませんか、と聞かれるが、こればっかりはどうにもならない。
Excel VBAを秀丸マクロのような感覚で利用する分には便利なんだろうけど、ひとたび『アプリケーション』規模で『開発』してしまうと、これほど厄介なものは無い。あぁ、なんでこんなんでアプリケーションを開発しようとか考えるのかな。そりゃ、実行環境を考えなくて良い(どこでもExcelはインストールされているだろうから)からなんだろうけど…