トップ > 玄人向け > VBA高速化検証:文字列の取得

VBA高速化検証:文字列の取得   2011.09.21

ソフト作成の過程で、文字列を操作することがとかく多いので、今回は、文字列の取得に焦点をあて検証を行いました。
比較を行うのは使用頻度の高いLeft関数と、Left$関数です。$がつく関数は「文字列型」のデータを返し、つかない方は「バリアント型(内部処理形式 String の Variant)」を返します。一般的に$のついた方が高速だと認識されています。では、どれほど高速なのかを検証しました。
尚、Excel2003と2007で検証を行っています。

※Mid関数やRight関数もLeft関数と同様に、Mid$関数、Right$関数が用意されています。

文字列の取得

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


結果

・Excel2003と2007では、ほぼ同様の結果であった
・Left$関数を使用した方が、60ポイントほど高速であった
・1~5文字程度では、速度面で差は見られなかった

結果から

やはり「$」を使用した方が、高速でした。一般的なケースでの文字列の取得には、「$」付きの関数を使用することが、高速化に繋がります。
また、取得文字数での速度面での違いは、数文字程度ではほとんど見られませんでした(桁数が増えれば差が生じることが予想されます)。

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


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

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


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