処理を高速化するおまじない
やりたい事
VBA書くときに処理の高速化のためにとりあえずおまじないとして実行するコードを記載します。
サンプルコード
クラスモジュールの「common」クラスに以下のコードを記載します。
Sub vbaSpeedUpStart() Application.ScreenUpdating = False Application.Calculate = xlCalculationManual Application.EnableEvents = False Application.Cursor = xlWait End Sub Sub vbaSpeedUpEnd() Application.Cursor = xlDefault Application.EnableEvents = True Application.Calculate = xlCalculationAutomatic Application.ScreenUpdating = True End Sub
「Module1」で作成したクラスモジュールの処理高速化を実行する方法
Sub 処理高速化サンプル() Dim com As common Set com = New common com.vbaSpeedUpStart 'ここにしたいVBA処理を記載する com.vbaSpeedUpEnd End Sub
VBAオブジェクトを宣言時にNEWするとオーバヘッドが大きいみたいなので基本は、宣言とNEWは分けて書くのがベターなようです。
コメント