- ベストアンサー
EXCEL マクロ実行速度が大きく変化する現象について
- EXCEL2003で他人のつくったマクロなのですが、普通に実行すると非常に遅いのですが、実行中にESCキーを押して一旦中断し、ダイアログボックスの継続ボタンで実行を再開すると、実行の速度が当初の10倍くらい早くなります。また、もう一度ESCキーを押すとマクロは中断されます。
- マクロは初心者でコードの内容もほとんど理解できず、また、仕事上のものなのでコードを記載することもできません。このような現象について何かご存知の方、当初から早いスピードでマクロを実行する方法についてご存知の方がいらっしゃいましたらお教えいただけませんでしょうか。
- マクロで行っているのは特定の表から別の表を作り出すという作業です。EXCEL2003,celeron1.2G,メモリ376M,winXPで実行しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
このマクロの動作を色々試し検証しましたが、A2:CH627と言う広範囲なセルを選択するところがあり、私のマシンでは充分動作しますが、搭載メモリの少ないマシンでは、Windowsがメモリに入りきれないデータをHDにスワップさせますので、データ読み込みとHD書き込みの時間も重なって余計に動作が遅くなるのだろうと思います。 尚、ワークシートのデータが分からないのですが、データベースのようですね。Excelもデータベース機能がありますが、大規模なものには向いていません。 Accessの使用をお勧めします。 このようなシステムの場合、Accessでデータベースを作成し、必要な部分だけをExcelに取り込んで作業するのが一般的です。 AccessとExcelに詳しい人に頼んだ方が良さそうです。
その他の回答 (2)
- Kazupie
- ベストアンサー率17% (56/323)
コードが示されないのなら回答もできないのですが、おそらく変数の型や有効範囲、多重ループでメモリやCPUに負荷をかけているものと思われます。 作成者にコードの手直しを依頼してください。 又、この場に作業内容と目的を示して、アドバイスを求められたらどうでしょうか?
お礼
ありがとうございます。 作成者はすでに退職しているので聞くことができないのです・・・
- KenKen_SP
- ベストアンサー率62% (785/1258)
>...仕事上のものなのでコードを記載することもできないのですが... 残念ですが、回答のしようがありません。本当に解決したいのであれば、コードを示すか、あるいは信頼でき、かつVBAに精通した人に見てもらうしかありません。 ESCキーによるマクロ中断後に、継続ボタンをクリックしただけで、マクロ全体の実行スピードがあがるとは通常考えられません。(、、、あり得ません) ただ、普通そんなことはしないと思いますが、ESCキー押下がトリガーとなって、処理を開始するようにコーディングされているのかもしれません。やはり、コードを見ないとなんとも言えませんね。
お礼
ありがとうございます。そうですよね、コードなしでは当然だと思います。 コードの内容は一通り目を通してみたのですが、「ESC押下をトリガーとして・・・」というようなものはありませんでした。 また、何度も試しているとESCを押した回数ではなく、どのタイミング(どの部分のコードを実行しているときか?)で押したかによって、スピードが上がったり中断されたりしているのかな・・・という気がします。おそらくコードの一部にPCに負担をかける部分があって、それがESC押下によってカットされて・・・というような感触です。 なにはともあれ、どうもありがとうございました。
お礼
返事が遅くなり申し訳ございません。 ありがとうございます。Accessを一度勉強してみます。 お手数をおかけしました。 ありがとうございました。