コンテンツにスキップ

Excel VBA 処理を高速化する

各種を要所で組み合わせて使用する

Application.ScreenUpdating

マクロの速度を向上させるため、画面を更新しないようにする
マクロが終了した後はScreenUpdatingTrueに戻す

Usage

Application.ScreenUpdating = False

' do something

Application.ScreenUpdating = True

Application.Calculation

計算モードの設定を扱い、自動計算のオン・オフを切り替える

シートに数式が多いとセルの値が変更されるごとに数式が自動計算され、処理スピードが落ちてしまう

最後にTrueに切り替えてまとめて計算させることで、高速化が期待できる

Application.Calculation = xlCalculationManual

' do something

Application.Calculation = xlCalculationAutomatic
  • xlCalculationAutomatic 自動計算(オン)
  • xlCalculationManual 手動計算(オフ)

Application.EnableEvents

セルの変更で実行されるWorkSheetイベントを設定している場合、他マクロの実行中にオフにすることで処理速度の向上が期待できる

Application.EnableEvents= False

' do something

Application.EnableEvents= True

Reference

Application.ScreenUpdating プロパティ (Excel)
Application.Calculation プロパティ (Excel)
Application.EnableEvents プロパティ (Excel)