例えばCOBOL(思いついたのがこれなので勘弁して)で、IF文とEVALUATE文とでは速度が違い、後者の方が遅いので避ける、という話がある。

富士通の汎用機OSであるFSPのバッチ処理で計測したところ、確か前者が50秒に対し後者が60秒くらいの速度差の比率であったように思う。もし夜間処理で処理時間は十分余裕があるとか、マシン使用時間に課金されることがないとかであれば大差なく、どちらでもいいとなるのかもしれない。実際、コーディング規約で「IF文は使わない」という会社もあったくらいだ。可読性を重んじてのことだろうとは思う。

さて、VBAの場合でも「こうした方が早い」というものがある。例えばオブジェクトに対してならFor 文より For Eachの方が速い、などである。実際計測はしていないが、上記のような差くらいであろう。

しかし、中には「雲泥の差ほど処理速度が変わること」も存在する。

例えば
・セルひとつひとつにデータを出し入れするより、まとめた方が速い
・色やセル形式も複数行、複数列をまとめて指定した方が速い
ということがある。

表形式のシートへ入力/変更を加え、値や列の相関関係/行の相関関係などのチェックをさせる場合でも、セルの値を直接判定するのではなく、一旦表の状態のものをメモリ上のテーブルに移すと非常に高速になる。

しかし、メモリに写す方法や、写してから加工することがあるかどうかによってもどうコーディングすればいいのかは変わってくるので、是非規約化しておきたいところである。