トップ > 玄人向け > VBA高速化検証:If...Then...ElseステートメントとSelect...Caseステートメント

VBA高速化検証:If...Then...ElseステートメントとSelect...Caseステートメント   2011.09.21

条件による判定や分岐に使用する、If...Then...ElseとSelect...Caseの両ステートメントですが、どちらが高速か疑問に思い、速度比較検証を行いました。尚、Excel2003と2007で検証を行っています。

「If...Then...Else」「Select...Case」速度比較

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


結果

・Excel2003と2007では、TestA,B,Cそれぞれに若干の違いが見られた
・判定条件が2つの場合、最も高速なのはTestAだった
・判定条件が3つの場合、最も高速だったのは、TestBのExcel2007だった
・判定条件が増えると、If...Then...ElseとSelect...Caseの差が縮まった


結果から

判定条件が少ない場合は、If...Then...ElseIfの使用が有効です。判定条件が増えた場合は、Select...Caseを使用すると良いと考えられます。

※今回のテストは私のパソコンのみの検証であり、どのような環境でも、同様の結果を保証するものではありません。
※Excelのバージョンで結果に違いが出る事が考えられます。


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

●検証テストのコード [Code]
●Excel97-2010 [Test_File] 検証テストを行ったファイルです。


ページトップへ戻る
Copyright(C) 2009- 坂江 保 All Rights Reserved.