高速化

再描画抑制

デフォルトでは、セルに値を設定するたびに画面を再描画している。
再描画を抑制するには Application.ScreenUpdating に False を設定すれば良い。

    Application.ScreenUpdating = False
        処理
    Application.ScreenUpdating = True

※マクロ実行前後で設定内容が変更されるのを避けるためには、実行前に取得した変更前の値に戻す処理が必要になる。

再計算抑制

デフォルトでは、セルに計算式が設定されていた場合、セルの値を変更する度に再計算している。
再計算を抑制するには Application.Calculation プロパティを変更すれば良い。

    Application.Calculation = xlCalculationManual
        処理
    Application.Calculation = xlCalculationAuto

※マクロ実行前後で設定内容が変更されるのを避けるためには、実行前に取得した変更前の値に戻す処理が必要になる。

文字列結合

文字列を結合する度にメモリ領域を新たに確保するため、長い文字列を何度も結合すると遅くなる。
結合対象文字列を各配列に格納し、結合が必要なときに一括で結合すると幸せになれる。

シート入出力

セル 1 つ 1 つ参照しながら入出力を行うのは効率が悪い。
二次元配列で一気に取得と設定を行うと速い。

  • 最終更新:2013-03-05 12:45:35

このWIKIを編集するにはパスワード入力が必要です

認証パスワード