何かを演算するなどして、シートにデータを展開するときに、Application.ScreenUpdatingやEnableCalculationで一時的に画面更新や再計算を抑制したときにどれだけ効果が出るか試してみた。
と、あるベンチマーク的なプロシージャの実行時間の結果を以下に示す。
これから行くと、ScreenUpdatingとEnableCalculation両方をFALSEにした方が良いということになる。
少なくとも、何もしないよりは格段に効果があることになる。
何もしない場合に極端に時間がかかるのは、どこかが変わると一気に残りの箇所(ここで使用したプロシージャだと999箇所)の再計算が始まってしまうからである。
・・・と、いうことならデータをセットする前にクリアする方が早いのか?
と、あるベンチマーク的なプロシージャの実行時間の結果を以下に示す。
| 方法 | 実行時間 |
|---|---|
| 何もせず | 5.215秒 |
| EnableCalculation=False | 0.831秒 |
| ScreenUpdating=FALSE | 0.633秒 |
| 両方 | 0.338秒 |
これから行くと、ScreenUpdatingとEnableCalculation両方をFALSEにした方が良いということになる。
少なくとも、何もしないよりは格段に効果があることになる。
何もしない場合に極端に時間がかかるのは、どこかが変わると一気に残りの箇所(ここで使用したプロシージャだと999箇所)の再計算が始まってしまうからである。
・・・と、いうことならデータをセットする前にクリアする方が早いのか?
| ホーム |
SHOJI's Code



