VBA Speedup

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

 ソフト作成の過程で、文字列を操作することがとかく多いので、今回は、文字列の取得に焦点をあて検証を行いました。
 比較を行うのは使用頻度の高い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]


Excel Tips for Teachers

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