VBA Speedup

VBA高速化検証:構造体(ユーザー定義型)

 異なる型の変数を同じ名前で管理できるのがユーザー定義型です(ここでは便宜上構造体と書いていきます)。「通常の変数と構造体の変数では、速度に差が出るのか」「構造体にWithステートメントを併用した場合では、速度に差がでるのか」この2つに疑問を持ったため、検証を行いました。
 尚、Excel2003と2007で検証を行っています。


構造体

 構造体は、予め標準モジュールの宣言セクション(モジュールの最上部)で定義する必要があります。詳細は、検証テストのコードをご覧ください。

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


結果

 ・Excel2003と2007では、同じような傾向であった
 ・通常変数と構造体は同じような結果であった
 ・Withステートメントを併用した場合、必ずしも良い結果ではなかった

結果から

 Withステートメントを使用すると速くなるのでは、と予想していただけに、意外な結果でした。今回の結果には、様々な要因が絡んでいると思われるため、断定はできませんが、通常の変数でも構造体でも、速度面での差はないようです。Withステートメントを併用すると、場合によっては処理に時間がかかるようです。

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

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


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

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

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


Excel Tips for Teachers

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