VBAといふこと

amelia2008-07-31

あめりあんですー
そんなこんなで、最近はマーチもテンポが緩まったらしく、ちょいと開発支援ツールなぞも作る時間を作れたりです。んで、CSVバリデータとかテストクラス自動生成とかを作り始めていて、VBAを本格的に触ってみた感想でも書いてみたりします。
VBAの思い出と言えば、学生時代に遡るのですが、当時、自分のPCには開発環境なぞなくて(フリーコンパイラとかJavaとか別に探せばあったんだけど)、日々悶々と過ごす中、とあるPC雑誌でVBAの一発コラムをやっていたんですね。あめりな的にはWORD/EXCELとか日々使っているアプリケーション上でコードエディタが開いている其だけで悶絶。早速、みようみまねでコードを書いてみたんです。確か、エクセル上でWAVEファイル経由の音楽を流すやつだったような。まぁ、VBAコードの分かり難いこと。なんちゅうか、コードを書いているというか、書かされている感の強いアレで、その後の授業でマルチテスタにGP-IB接続し自動計測アプリケーションを作成するやつもあったんだけど、そのアプリはVBで作れと。これも四苦八苦したなぁ。。やっぱりCが良いなぁとその頃から肌で感じていたと思う。今でもVBはよく分からないし触ろうとも思わないんだけど、VBAの良さは凄い分かってきた。結構、エクセルでデータ管理してグラフとか統計とかやったりする雑業務があるんだけど、ゴリ押しでCSV保存してからGUI作ってガリガリC++でツールは作っていたんだけど、それと言うのもエクセルファイルは如何せんバイナリであるため故。最近はXML化とか出来るとは聞いていたり本もちょくちょく拝見するんだけど、エクセル/ワードファイルのままでも、VBA使いこなしてくると結構何でも出来ちゃったりするんだ。基本的にオフィス製品にはすべてVBAが実装されていると思うので、それらのリンクも訳ないという。
んで、最初に嵌ったのは構文。もうね、分岐/条件文もCのそれとは全然勝手が違うから感覚的にコードが書けず、ひたすら本と格闘。おまけに、標準モジュールとクラスモジュールの位置付けちゅうの?どちらをどのように使うのが正しいのかさえ分からず、Functionの復帰値設定のアレとか、break文はどれよとか、変数宣言がなげーしだせーしとかね。。。基本的に各種言語を早急にマスタするには、精通者のコードを見るのが一番なんだけど、まぁ見たコードの汚いこと。一瞬にして軽蔑するようなコード書いてたなぁ。。あの精通者とか呼ばれている似非。Collectionオブジェクトを使ってみたんだけど、キーでのアイテム取得が出来なかったり、ファンクション復帰でコレクションを指定してもインタプリタが怒ったりで(エラー内容見ても何が悪いのかさっぱり辿れず)、じゃじゃ馬な感じですけど、かなり色々出来ると思われます、VBA。改行の半角スペース+アンスコ仕様は最低だと思う。With - EndWith構文は最初パニクった。何コレ?て。