• ベストアンサー

エクセルのVBAのスピード

エクセルでVBAを組み走らせると、時々(常にではありません)とてもスピードが遅くなる時があります。 Ctrl+Pauseを一回マクロを止めて、再度走らせると普通のスピードに戻ります。CPU使用率も50%程度ですし、メモリも約半分程度です。 環境は、 VISTA AMD Athlon(tm)64*2 Dual Processor 4200+ 2.20G メモリ 2G エクセル2007 です。 ただ単に、プロシージャの書き方に無駄が多いのかもしれませんが。。。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>ただ単に、プロシージャの書き方に無駄が多いのかもしれませんが。。。 この判断は回答者には難しいでしょう。 VBA高速化テクニック http://www.officetanaka.net/excel/vba/speed/index.htm 該当する項目があるか確認してみては如何でしょうか。

TENSAW
質問者

お礼

n-junさん、 とても参考になるページです。 一つ一つ確認してみます。 即答に感謝いたします。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 コードを見なければ分かりませんが、その遅くなるのは、おそらく、オーバーヘッドという現象に似ています。物理的メモリは関係ありません。ループ内で、不必要なオブジェクトを入れてしまっているからだと思います。VBAコードの中で、オブジェクトを開放していないと思います。なお、下位バージョンではありがちなのですが、Vista + Excel 2007 で、イベントの再帰呼び出しは、ハングした状態になったことがありますから、たぶん、それは違うように思います。 ループ http://msdn.microsoft.com/ja-jp/library/cc326716.aspx >ただ単に、プロシージャの書き方に無駄が多いのかもしれませんが。。。 今回の話とは違いますが、VBAで、劇的に結果が違うなら問題ですが、せいぜい数秒程度の違いなら、スキル的に、あるレベル以上にならなければ、実際のコーディングで、解消できないように思います。それよりも、正しいコーディング・スタイルを守るほうがよいです。

TENSAW
質問者

お礼

Wendy02さん、 ご返答ありがとうございました。 最度見直してみます。 あるレベル以上に・・・がんばります。

すると、全ての回答が全文表示されます。

関連するQ&A