エクセルマクロを使用してエクセルシートからデータを順次読みとり書き込む処理をしていますが時間がかかり困っています。CPUやメモリなどの資源を常に限界まで使用したり、ロジックを工夫したりして大幅にスピードUPしましたがそれでもまだ3日以上かかります。自分の知識、能力ではもう限界です。ここをこうすれば処理が速くなった、という経験や知識をお持ちの方、些細なことでも教えてください、お願いします。(SQLを必要としないデータ、1つのファイルのライン数が多くても4万ラインまで、後で手で編集したり分析ツールが使用しやすいなどの理由でエクセルを使用していますが、ファイル数は5000、サイズは計15Gになります。)またこちらのPC環境はCPU:ペンタ3の866、メモリ:512、OS:2000、エクセル:2000です。

A 回答 (2件)

エクセルファイル間のやり取りではなく


テキストファイルを利用したもの
に変えてみてはどうでしょうか。
どのようなデータ、処理か
分かりませんが、必要な項目のデータを
集めるようなものであれば
入力・出力をテキストで行って
1行読む、処理、書き込む、次へ。
結果をエクセルで開く。
シートへのアクセスは
時間のかかるイメージがあるもので。
4万行を表示せず済みます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
やはりそれが正論でしょうね...少し意固地になっていました。
どの位速くなるかわかりませんが試してみます。

お礼日時:2002/02/16 22:36

まずよくやるのが


ScreenUpdating = False ですが、当然入ってますよね。
あとはCellやRangeの余計なSelectをなくすとか。

それと、Integer型の変数は基本的に使わないほうが良いです。Long型にしましょう。
Windowsの内部処理が32bit(=4byte)で行われていてInteger型の16bit(=2byte)を32bitに変換しながらCodeを実行するためです。
5分くらいかかるマクロが25%速くなった経験があります。 
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
今までIntegerが当たり前、の感覚を持っていました。

お礼日時:2002/02/16 22:19

このQ&Aに関連する最新のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ