小技プログラミング

VBA実行時にEXCELの再計算を一時停止させる

エクセルでは、関数が入っているセルがあると値の変更時に毎回再計算を行います。
その為、大量の関数がある場合は大幅なパフォーマンスの低下を招きます。
※オプション設定で再計算を手動にしている場合は発生しません。
特にExcel2003では全ての関数を再計算しているのか、致命的に処理時間が長くなる事があります。
このような時は Application.Calculationに xlCalculationManual を設定する事でエクセル上での再計算を一時停止する事が出来ます。

VBAでの表示処理が終わり、EXCELのセルに入力されている関数を処理させたい時に、xlCalculationAutomaticを設定して、再計算されるようにします。
こうする事で、無駄な計算が省かれて大幅に処理速度を改善する事が出来ます。

Excel2007では改善され、よっぽどの事が無い限り気にする事はありませんが、それでも処理速度の向上に繋がるので、丁寧に設定する事をお勧めします。

'再計算を手動に設定
Application.Calculation = xlCalculationManual

'再計算を自動に設定
Application.Calculation = xlCalculationAutomatic