【EXCEL VBA】処理速度を劇的に改善するための高速化テクニックを知りたい

VBAの処理が重い・遅いと感じる時があると思います。さらに酷い状態になると「応答なし」と表示されExcelが固まってしまった経験もあるのではないでしょうか?このような状態を回避するために「簡単に」処理速度を改善する方法を紹介します。

今回紹介する高速化テクニックは、「コードがスパゲッティ状態のためデグレが怖くて修正できない」「前任者が作成したコードのた内容が全くわからない」など、コードが触れないような既存のVBAでも、コード修正量を最小限におさえて「簡単に」処理速度を改善する方法の紹介となります。

処理速度改善方法

VBA開始時と終了時に3行のコードをそれぞれ追加するのみです。VBA処理内容によっては、うまく動かない場合もあるかと思います。その場合は、対となるコードを1行づつ削除して試してみてください。

VBA開始時に追加するコードは以下となります。

Application.Calculation = xlCalculationManual  '数値の自動計算をOFF
Application.EnableEvents= False                'イベントの発生をOFF
Application.ScreenUpdating = False             '画面表示の更新をOFF

VBA終了時に追加するコードは以下となります。

Application.Calculation = xlCalculationAutomatic  '数値の自動計算をON
Application.EnableEvents= True                    'イベントの発生をON 
Application.ScreenUpdating = True                 '画面表示の更新をON