Excel VBA | パフォーマンス改善のコツ

Excel VBA VBA
スポンサーリンク

なるほど!「パフォーマンス改善のコツ」といっても、対象によって少し違いますが、ここでは VBAやプログラム設計で処理速度を上げるための一般的な工夫 をまとめます。


パフォーマンス改善の基本ポイント

1. 不要な画面更新を止める

  • Application.ScreenUpdating = False
    → 処理中に画面を更新しないことで高速化
  • 終了時に True に戻すのを忘れないこと

2. 計算を一時停止

  • Application.Calculation = xlCalculationManual
    → 大量のセル更新時に自動再計算を止める
  • 終了後に xlCalculationAutomatic に戻す

3. Select/Activateを使わない

  • Range("A1").Select → 遅い
  • 代わりに Range("A1").Value = 100 のように直接参照する

4. ループを減らす

  • セルを1つずつ処理するより、配列にまとめて読み書きする方が速い
Dim arr As Variant
arr = Range("A1:A1000").Value   ' 一括で読み込み
' arrを処理
Range("B1:B1000").Value = arr   ' 一括で書き戻し
VB

5. 変数型を適切に

  • Variant は便利だが遅い
  • LongDouble など、適切な型を使うと高速化

6. 不要なイベントを止める

  • Application.EnableEvents = False
    → イベント処理を止めることで無駄な呼び出しを防ぐ
  • 終了後に True に戻す

7. With構文を活用

  • 同じオブジェクトを繰り返し参照する場合に効率的
With Worksheets("Sheet1")
    .Range("A1").Value = "Hello"
    .Range("A2").Value = "World"
End With
VB

8. アルゴリズムの見直し

  • ネストしたループを減らす
  • 計算をキャッシュして再利用する
  • 条件分岐をシンプルにする

まとめ

  • 画面更新・計算・イベントを止める
  • Selectを避けて直接参照
  • 配列でまとめて処理
  • 型を適切に指定
  • アルゴリズムを効率化

これらを組み合わせると、特に「大量データ処理」や「繰り返し処理」で大幅に速度が改善します。

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