Excel VBA の実行中の画面描画を停止させて高速化させる
マクロでアレコレ処理する時、画面描画を更新させないようにすると、処理が高速化できる。また、マクロでシートをアレコレと高速操作するときに画面がチラつくのも、これで画面描画を止めれば鬱陶しくなくなる。
画面描画を止めるには、Application.ScreenUpdating
というプロパティを使う。
Sub Hoge()
Application.ScreenUpdating = False ' 画面更新を止める
' 何か処理
Application.ScreenUpdating = True ' 画面更新をするように戻す
End Sub
別のプロシージャを Call するような時は、そのサブプロシージャにも直前の設定が引き継がれる。そのため、メインで呼び出すプロシージャで一度設定しておけば二度設定する必要はない。これは、Application オブジェクトが Excel アプリ全体を表すものであることを考えれば分かる。
参考
- Application.ScreenUpdating プロパティ (Excel)
-
マクロの速度を向上させるため、画面を更新しないようにします。この場合、マクロの処理過程は見ることができませんが、実行速度が速くなります。
-
- Office TANAKA - Excel VBA高速化テクニック 無駄な表示を止める
- 画面の更新を停止(初心者が陥りやすいミス) VBA性能徹底検証 VBA性能向上委員会