それは、ほんの些細な疑問からスタートしました。「どうしてVBはコンパイル時に未使用変数をワーニングしてくれないのだろうか?」──この疑問はVBを本格的に使いはじめて(当時はVB 4)間もなく抱きました。同様の疑問を持った人はきっと多いと思います。Windowsアプリ開発用の言語はVB以外にも、VC++、Delphi、Javaなどいろいろとありますが、これらは当たり前のように未使用変数をワーニングしてくれます。「仕方ない。ひとつツールでも作ってみるか」。このように安易な思い立ちで、「自製VBアプリ高速化ツール」の開発が始まりました。でもソースを直接解析するという処理は、まるでコンパイラのフロントエンドを書くようなものです。しかもVBは結構柔軟な記述が許されていることもあって、完璧を目指すと、とてつもない困難が予想されました。「どうせVBの次のバージョンでは、絶対に未使用変数のワーニングぐらいは標準サポートしてくれることだろう。短い命のツールになりそうだ」。そこで初期のバージョンでは「未使用変数のワーニングはローカル変数のみを対象にする」などと、さまざまな制約付きで作成し、@nifty(当時はNIFTY SERVE)のFWINDBにこっそりとアップロードしてみました。するとダウンロードカウンタはあっという間に数百に。いろいろな方から励ましのメールや機能要望のメールをいただいたり、雑誌社から掲載依頼がきたりと、まったく予期していなかった反響に驚いたものです。
よし、それならコードの改善でアプリの動作を高速化できるような個所を徹底的に洗い出せるツールにしよう、と地道な強化を続けていまに至っています。VB 6に対応した最新版ではローカル変数だけでなく、すべての未使用変数をワーニングできるように強化しました。今後もみなさまの要望などを取り込みながら、地道な強化を続けてゆきたいと思います。よろしくお願いします。m(__)m しかし、やっぱり解けないナゾがひとつ……(^^;; 「どうしてVBはコンパイル時に未使用変数をワーニングしてくれないのだろうか?」──VB 6でも相変わらずです。Option Explicitを宣言しているモジュール内の変数ぐらいはワーニング対象にしてくれてもいいと思うんですが?>MSさん
(ふらっと)