Excel VBAマクロを作った際、とにかく滅茶苦茶遅かったので、高速化を色々試してみた。
ド定番!画面更新を切る
基本的に、これやると超早くなる。
方法は以下の通り。
Application.ScreenUpdating = False
:
[処理]
:
Application.ScreenUpdating = True
Application.ScreenUpdatingをFalseにして、画面更新を停止し、処理の完了後、Trueにして画面更新を再開する。
Copyを使わない
セルの初期ごとコピーしたい場合とかに、Copyを使う方法がある。
ただし、こいつが死ぬほど遅い。
Copyを使わずに済むのなら削る方が良い。
DoEventsを使わない
DoEventsも処理が重くなる。
ループで毎回DoEventsやってる場合、削ると大分早くなる。