Excel VBA 処理を高速化するおまじない Application

スポンサーリンク

処理を高速化するおまじない

やりたい事

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は分けて書くのがベターなようです。

VBA オブジェクト変数の宣言時にNewすると何がまずいのか
公式のオーバーヘッドについて

コメント

タイトルとURLをコピーしました