VBA Speedup

VBA高速化検証:変数の型の違い

 ソフト作成の過程で、VBAの処理スピードに関する検証を行いました。
 ここでは『変数の型ごとの値格納速度』に焦点を当て、数値、論理値、文字列のそれぞれのケースで検証テストを行いました。尚、Excel2003と2007で検証を行っています。


変数の型ごとの値格納速度検証テスト

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


結果

◆数値
 ・Excel2003と2007では、ほぼ同速であった
 ・Long型が最も高速であった
 ・ByteよりもCurrencyが高速であった

◆論理値
 ・Excel2003と2007では、特にVariant型に差が出た
 ・Boolean型が高速であった

◆文字列
 ・Excel2003と2007では、2007の方が若干高速である
 ・String型が18ポイント程高速である
 ・数値や論理値と比較すると、非常に時間がかかる※
  ※最も高速であったExcel2007のLong型と比較すると、2007のString型でおよそ7倍


結果から

 数値を格納するには、Long型が良いとの結果になりました。見やすさを度外視し、ただ高速を追求するのであれば、Boolean型での「False」「True」を、Long型の「0」「1」に置き換えるのも、1つの方法です。
 また、文字列の格納回数をなるべく少なくすることが、高速化のポイントです。
 Variant型は、数値、文字列では有る程度の速度はありますが、論理値では差が際立ちます。やはりそれぞれの値に適した型を宣言し使用する方が良いでしょう。

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

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


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

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

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

Excel Tips for Teachers

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