2012年2月2日木曜日

VBA再計算、再描画をオフにして、スピートを上げる

VBAで長いループを回す時、シートに書き出す必要がある時は、下のコードを入れると劇的早くなる場合があります。
'再計算を手動にする
Application.Calculation = xlCalculationManual
'画面描画を無効にする
Application.ScreenUpdating = False

'LOOPのブロック
for each ...

next

'画面描画を有効にする
Application.ScreenUpdating = True
'再計算を自動にする
Application.Calculation = xlCalculationAutomatic
'再計算を行う
Application.Calculate
ちなみに遅くなる原因は、ロープがシートに内容を書きこむことで、シートが再計算、再描画するからです。
マクロ「やってる感」を出すために再描画(Application.ScreenUpdating)だけを「True」にする場合もあります。
「お!すげぇ~~」と言われるためにね(๑¯ω¯๑)

0 件のコメント:

コメントを投稿