VBA 高速化について

date
2020-02-10
tag: VBA パフォーマンス

VBA 高速化

描画停止、自動計算停止、イベント停止を行う

対象となる処理開始前に停止する。

        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
        Application.EnableEvents = False

処理終了後に戻す。

        Application.ScreenUpdating = True
        Application.Calculation = xlCalculationAutomatic
        Application.EnableEvents = True

セル配列化

Range を配列に変えて配列で処理後に反映する。

    Dim cellArray As Variant
    cellArray = Range("A1:B2")

    '値をセットする
    cellArray(1,1) = "test"

    Range("A1:B2") = cellArray

書式は可能な限りまとめて設定する

Range で範囲を選択して設定する。