OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

エクセルマクロの処理スピードUP

  • 暇なときにでも
  • 質問No.218596
  • 閲覧数259
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 28% (2/7)

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

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

  • 回答No.2
レベル9

ベストアンサー率 69% (51/73)

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

お礼率 28% (2/7)

回答ありがとうございます。
やはりそれが正論でしょうね...少し意固地になっていました。
どの位速くなるかわかりませんが試してみます。
投稿日時 - 2002-02-16 22:36:01
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル9

ベストアンサー率 60% (35/58)

まずよくやるのが ScreenUpdating = False ですが、当然入ってますよね。 あとはCellやRangeの余計なSelectをなくすとか。 それと、Integer型の変数は基本的に使わないほうが良いです。Long型にしましょう。 Windowsの内部処理が32bit(=4byte)で行われていてInteger型の16bit(=2byte)を32bitに変換しながらCodeを実行 ...続きを読む
まずよくやるのが
ScreenUpdating = False ですが、当然入ってますよね。
あとはCellやRangeの余計なSelectをなくすとか。

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

お礼率 28% (2/7)

回答ありがとうございました。
今までIntegerが当たり前、の感覚を持っていました。
投稿日時 - 2002-02-16 22:19:45

このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ