【VBA処理速度を高速化!】画面描画と再計算の停止方法
こちらのWebサイトは移転しました。
今回はVBAを高速化するための、画面病と再計算の停止方法をご紹介します。
画面描画の停止方法
ExcelなどでVBAのマクロ実行中でも、コピーやセルの移動を行うとあわせて画面が動きます。
これは処理のたびに画面を描画しており、描画時に目盛リソースを多く消費します。
この画面描画を停止することで処理の高速化が期待できます。
描画を停止するためには、以下のようにコードを記載してください。
'画面描画を停止 Application.ScreenUpdating = False ' ~実行処理~ '画面描画を再開 Application.ScreenUpdating = False
描画停止の効果は処理により様々ですが、実行時間が半分以下になる場合もあります。
セルの選択をするという単純な処理では、95%近く処理が短縮されています。
Office TANAKA - Excel VBA高速化テクニック[無駄な表示を止める]
数式再計算を止める
Excelの場合、セルの値や数式が変更になった場合に、自動再計算を実行します。
VBA実行中でも再計算が行われるため、
セル参照などの数式がたくさん使われているとVBA処理が遅くなります。
再計算を停止するためには、以下のコードを記載して下さい。
'再計算を手動に設定 Application.Calculation = xlCalculationManual ' ~実行処理~ '再計算を自動に設定 Application.Calculation = xlCalculationAutomatic