AIに聞いた、VBAプログラミング高速化


🚀 VBA 高速化の最重要ポイント(実務で効く順)


ScreenUpdating を切る(最強)

Application.ScreenUpdating = False

画面描画が止まるので 体感で 5〜20 倍速くなる


Calculation(再計算)を手動に

Application.Calculation = xlCalculationManual

大量セルを触る処理では これだけで爆速

処理後に戻す:

Application.Calculation = xlCalculationAutomatic

EnableEvents を切る

Application.EnableEvents = False

イベント(Change, SelectionChange)が走ると激遅になる。


Select / Activate を使わない(超重要)

悪い例:

Range("A1").Select
Selection.Value = 123

良い例:

Range("A1").Value = 123

これだけで 10 倍速くなることもある。


Range をループしない(配列に読み込む)

悪い例(激遅):

For i = 1 To 10000
    Cells(i, 1).Value = Cells(i, 1).Value * 2
Next

良い例(爆速):

Dim arr, i
arr = Range("A1:A10000").Value

For i = 1 To UBound(arr)
    arr(i, 1) = arr(i, 1) * 2
Next

Range("A1:A10000").Value = arr

配列処理は 50〜100 倍速い。


With を使う

With Worksheets("Sheet1")
    .Range("A1").Value = 1
    .Range("A2").Value = 2
End With

Variant を避ける(Double / Long を使う)

計算が多い場合は型指定で高速化。


UsedRange を使わない(地雷)

UsedRange は壊れていることが多く、
無駄に広い範囲を処理して激遅になる。

代わりに:

Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row

Application.StatusBar を使わない

頻繁に更新すると逆に遅くなる。


Selenium の高速化(あなた専用)

  • driver.SetPreference "profile.managed_default_content_settings.images", 2
    画像読み込みオフ(2〜5倍速)
  • driver.SetPreference "permissions.default.stylesheet", 2
    → CSS オフ
  • driver.SetPreference "javascript.enabled", False
    → JS オフ(使えるサイト限定)

🔥 実務で使える「高速化テンプレート」

あなたの全 VBA に共通で使える“最強テンプレ”です。

Sub FastStart()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
End Sub

Sub FastEnd()
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
End Sub

処理の前後に入れるだけで 全体が爆速化します。


この記事が参考になった!と思ったら、下のバナーをクリックして応援お願いします😊


Osya's Blog - にほんブログ村

🎯仕事に疲れたときは

 私はこれです。仕事終わりや、チョっとつかれたときに、ミックスナッツとウイスキーまたは赤ワイン。
 コード譜書くのって結構つかれるのです。
 トリフ塩があれば最高です。軽く燻製してもグッド

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です