ゆりかもめが開通し、トラブル続きや乗客が少なかった頃、夜景を楽しもうと夕方ゆりかもめに乗ろうと新橋のホームに上がるとTV局のスタッフが!取材を申し込まれたものの、まずい状況だったので映るわけにはいかず、逃げるように列車に飛び乗った。工事中だらけのお台場を散策し、帰りにまだ居たらまずいよなと、びくびくしたのを覚えている。

その当時、VBAが初めて搭載されたExcel 5で、金融系の社内向けシステムを作っていた。初めてVBAに触れたプロジェクトである。中に金額がいくらかを超えていたらセルに色を付ける、という処理があり、テストを完了させ共同作業をしていた隣席の後輩に引き渡した。

しばらくして「あれ、色付きませんよ?」との声がして、確認すると確かにつかない。ステップ実行させてもつかない。ところが同じものを私のPCで実行すると色が付いた。PCのメーカーが違ったので何かあるのかな?程度の話で、結局原因は分からずじまいであった。

プロジェクトを離れてしばらくしてから、ビデオボードの性能が影響するのでは?と思い当たり、再描画すればよさそうだと思ったものの、確かめる術はなく今日に至っている。



「マクロの記録」機能で保存したVBAはいけない。非常に効率が悪いからだ。それは記録している限り仕方の無い部分である。


例えば


~.Select


Selection.~


となっていれば、まず無駄な処理をしていると考えてよい。




記録はVBAを学ぶ初期段階や、ドワスレした際の確認のためには有効であるが、効率が悪いことが多いので手作業で修正しよう。


インデント(段下げ)は可読性に大きく影響する。


・変数の定義はいくつ


・第一レベルはいくつ


・第二レベル以降はいくつづつ


・On Error の定義はいくつ


などを決めておくこと。インデントのタブ設定も併せて設定しておくべし。




個人的には


・変数の定義  第一レベルと同じ


  (基本的にはコード中に変数の定義は書かず、先頭に集めている。)


・第一レベル  半角4つ


・第二レベル以降  半角2つづつ


・On Error の定義 半角2つ




なお、VBAにはないが、VB.NETなどでは「ここからここまではひとかたまりですよ」という定義があり、その単位でコードを展開したり閉じたり(エクスプローラーのフォルダで、サブフォルダを展開したり閉じたり、という感覚と同様)することができる。この場合にはインデントが不要かどうかまだ試していないが、個人的にはインデントをしている。