気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

VBAマクロの高速化する方法

高速化するための実装方法

画面更新やセルの計算などの時間のかかる処理を抑止することで数倍~、高速化が図れる

'Escキーで処理停止、画面更新、イベント通知、セル自動計算を抑制
With Application
.EnableCancelKey = xlDisabled
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With

'マクロ本処理をここで行う。

'Escキーで処理停止、画面更新、イベント通知、セル自動計算を復活
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
.EnableCancelKey = xlInterrupt 
End With

各プロパティの詳細内容

  • Application.Calculation Escキーで処理停止、Escキーで処理が停止するのを抑制(xlDisabled)、復活(xlInterrupt)する

  • Application.ScreenUpdating 画面の更新を抑制(False)、復活(True)する。

  • Application.EnableEvents イベントの発生(セル内容の更新、シートのActive化等による引き金)を抑制(False)、復活(True)する

  • Application.Calculation セルの自動計算を抑制(xlCalculationManual)、復活(xlCalculationAutomatic)する

参考URL

http://pcfunabashi.com/pcf-salon-VBAkousokuka1.html