VBA Speedup

VBA高速化検証:Do~Loop、For~Nextステートメント

 繰り返し処理時に使用するDo ~ LoopFor ~ Nextの両ステートメントについてそれぞれ検証を行いました。その結果から、ここではDo ~ LoopとFor ~ Nextについての比較をまとめました。


Do ~ Loop・For ~ Nextの両ステートメントの速度比較

 下の表とグラフは、私のパソコン※でスピード検証テストを行った結果です。
 ※Vista / intel Core2 Duo / Excel2003,2007


結果

 ・Excel2003と2007では、For ~ Nextの加算処理で少し差が見られた
 ・For ~ Nextが数値の格納、Do ~ Loopが数値を加算の場合、For ~ Nextが37ポイント程高速
 ・For ~ NextとDo ~ Loop共に加算処理をした場合は、Do ~ Loopが若干高速


結論

 繰り返し処理を行う場合、繰り返し回数が決まっている場合は極力For ~ Nextを使用しましょう※1。また、全く同じ処理の場合はDo ~ Loopが良いようです※2。

 ※1)配列やセル参照はFor Each ~ Nextを使用の事
 ※2)Do ~ Loopの終了条件は、Loop後に記述する事
 詳細はFor ~ NextDo ~ Loopをご覧ください。

※今回のテストは私のパソコンのみの検証であり、どのような環境でも、同様の結果を保証するもの
 ではありません。

※Excelのバージョンで結果に違いが出る事が考えられます。


検証テストコードとファイル

 検証テストのコード ・・・ [ Code ]

 検証テストを行ったファイルです。興味の有る方は試してみて下さい。
  ・Excel97-2010 ・・・[Test_File]


Excel Tips for Teachers

Copyright (C) 2009- 坂江 保 All Rights Reserved.