Excel VBA で画面の描画を抑制する

Excel でちょっとしたマクロを書いて操作を自動化することがあります。VBA は他のプログラミング言語と比べると実行速度があまり速くないらしいということは何となく聞いたことがありましたので、多少待たされることがあってもまぁこんなものかと思っていたのですが処理中の画面の描画を抑制することでスピードアップが望めることを知りました。

' 画面描画を抑制
Application.ScreenUpdating = False

' 何か処理を書く

' 画面描画を再開
Application.ScreenUpdating = True

Application.ScreenUpdating = False とするとそれ以降は VBA での処理は進んでいても画面は更新されません。必要な処理が終わった後で True に戻しておけば OK です。

処理内容によって様々かとは思いますが私の場合は体感で半分くらいの時間で完了するようになり、だいぶ快適になりました。これからも、重めの処理をする場合は忘れずに設定しようと思います。