プログラム悪戦苦闘日記

はてなダイアリーからの移行(遺物)

Excel VBA 事始め

 他言語で開発経験を積んでいると、Excel VBAが非常にとっつきにくい。実はExcel VBAを『開発言語』と捉えると、とても奇特な環境でなのである。というのは、Excel ワークブックというのは、

  • 開発用のエディタ内蔵
  • デバッグ環境
  • 配布用実行ファイル

の3つを同時に満たしているからだ。通常の開発言語は、『統合IDE』と称して上2つが、一緒になっていることがあるが、さすがに配布ファイルも一緒になることはない。しかし、Excelはそうなるのだ。これは、自分の書いたプログラムも一緒に配布されてしまう、ということを意味する。いちようコードは暗号化できるので、利用者側に見せないようにすることはできるが、なんとも気持ち悪い感じがしてしまう。

 また、Excel VBAの特異な点については、ユーザー環境で確実に実行される保証が無い、ということだろうか。これは、1度は見たことがあると思うが、VBA
付きのファイルを開くと、マクロがありますが実行しますか? というダイアログが表示されてしまうことだ。これでNoを選択されてしまうと、どうにもならない。よく、マクロを強制的に実行させる方法はありませんか、と聞かれるが、こればっかりはどうにもならない。

 Excel VBA秀丸マクロのような感覚で利用する分には便利なんだろうけど、ひとたび『アプリケーション』規模で『開発』してしまうと、これほど厄介なものは無い。あぁ、なんでこんなんでアプリケーションを開発しようとか考えるのかな。そりゃ、実行環境を考えなくて良い(どこでもExcelはインストールされているだろうから)からなんだろうけど…