- ベストアンサー
マクロ処理速度を向上させるための方法と優先順位
- マクロ処理速度を向上させるためには、パソコンのスペックを向上させることが重要です。
- 具体的には、プロセッサの性能、メモリ容量、ハードディスクの速度を改善することが効果的です。
- また、インターネットに接続する場合は、通信速度やネットワークの安定性も考慮する必要があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
マクロなので、Office VBA の事だとは思いますが、Excelでしょうか?。 Word VBAをやる人は余り見ないし、Power Point であればなおさらです。まさか OutLook ではないですよね?。という訳で、Excel と仮定して以下を述べます。 もしCells(範囲)やRange(範囲)を使って、直接読み書きしているなら、次のような裏技(?)があります。 Dim TargetRange as Variant TargetRange = ActiveSheet.Range(目標範囲).Value これだけで TargetRange は、Range(目標範囲)の値だけが詰まった配列になり(この代入は一瞬です)、TargetRange からの Data 読み込みの速度は劇的に向上します。 要は、CellsやRangeといった重量級のObject型を使わずに、値型の軽量級配列を使うので、速度が向上します。 Range への書き込み操作についても同様な事が出来たはずなのですが、今すぐには出てきません。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
>時間が経つにつれてやはり処理速度が遅くなってくるのです。 今までの勉強からの推測ですが、RAMメモリの量の多少とかでなく、VBを動かすシステムの仕組みの中で、中間一時的に作業に使うメモリ、および一時的退避するディスクのエリアが、作業を繰り返すうち変化する(例えば割り当てにくくなる、探しにくくなる)とかではないでしょうか。 意外に内部記憶だけなく、(ユーザーのデータの入出力以外で)外部記憶とやり取りするように思う。 例えば倉庫にものを納めたり、取り出したりの例ですと、収納品が増えていくと、入り口から奥の方に納めたり、収納余地を探したり、はしごで上の棚から取らないといけないことなどが増えて、時間がかるというような。倉庫はディスクのアナロジーのつもり。 こういうことの正否は余程の特殊専門家で無いとわからないように思う。今後上記のような観点「も」参考(頭において)にして、長期的に勉強されると良いと思う。
お礼
使っているのはエクセルのマクロですが奥が深そうですね。マクロを勉強し始めて1年半位ですが、エクセルのことだけでなくパソコンの知識も必要みたいですね。ご回答ありがとうございました。
- hana-hana3
- ベストアンサー率31% (4940/15541)
> Inspiron1150モバイルインテル(R) Pentium(R)4 プロセッサ 2.8GHZ 512MB(256×2)DDR-SDRAMメモリ このスペックなら十分に問題なく使えると思いますよ。 それでも”遅い”というのであれば、どの処理に時間が掛かっているのかをチェックして、コードを見直す方が速度向上を図る事が出来ると思います。
補足
ご回答ありがとうございます。 今のパソコンでも使えることは使えるのですが、長時間連続してマクロを使用していると、時間が経つにつれてやはり処理速度が遅くなってくるのです。 最近のパソコンはメモリが2GBと私の4倍あるので、単純に処理が4倍速くなるのかと考えたりするのですが、実際はどうなのでしょうか?
お礼
使用しているのはエクセルのマクロです。CellsやRangeを使うよりVariant型として宣言した方が処理が速くなるのですね。一度コードを見直してみます。ありがとうございました。