
エクセルのVBAであるテキストファイルを読み込み、計算してCSVで吐き出すというプログラムを組んでいます。
質問はその計算スピードが徐々に遅くなってしまうということです。
計算し始めは大体1テキストファイルを読み込んでCSVに吐き出すのに1分くらいで済むのですが、3,4時間回してると1テキストファイル⇒CSVに2,30分かかってしまいます。
シートが増えていたりグラフを追加したりはしていません。
また、VBAの変数もできるだけ初期化するようにしてます。
読み込んでいくテキストファイルのサイズもそんなに変わらないです。
何か考えられる原因はないでしょうか?
ご教授宜しくお願いします。
No.2ベストアンサー
- 回答日時:
こんばんは。
>計算し始めは大体1テキストファイルを読み込んでCSVに吐き出す
「読み込んで」という、この過程に何が使われているのか分かりません。
コードをみないで、本来は、何も言うことも出来ません。しかし、通常、そのような内容の場合は、一切、ワークシートには出さないようにします。すべて、配列の中で処理していきます。
ワークシートに出せば、取り込んだものは、オブジェクトとして働いていますから、ブックの内部に積み下ろしされていないものが残しているような気がします。
ご回答ありがとうございます。
ワークシートに出していたことが原因でした。
本来なら配列ですべて処理できればよいのですが、
複雑すぎて一旦シートに落として処理してました。
No.1
- 回答日時:
関数は永久ループさせないでタイマーで繰り返す
(関数から抜けない限り内部で使用したメモリが自動開放されない)
使用済み配列は Erase する
使用済みオブジェクトは Nothing を Set する
などいろいろと対策はありますが
残念ながらやはりインタープリタ言語なので
メモリを完全に管理することはできないようです。。
いろいろ考慮した結果、シートを作成⇒削除を繰り返したことが
原因だったようです。
そこでプログラムを実行してるエクセルとは別のファイルに
シートを作成し、処理が終わったらエクセルごと閉じるという
プログラムに変えた結果、処理が遅くなることが解消されました。
回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
EXCEL VBA マクロ 実行する度に処理速度がどんどん遅くなる原因が知りたい
Excel(エクセル)
-
エクセルVBA コードが同じでもファイルによって処理速度が大きく変わるのはなぜ
Visual Basic(VBA)
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
-
4
EXCELのVBAで作業ファイルを閉じてもメモリの解放をしなくて困っています
Excel(エクセル)
-
5
〔Excel:VBA〕マクロの実行が異常に遅くなる
Excel(エクセル)
-
6
Excel VBA 処理後データが重たくなる&処理スピードが遅いのを解決したい
Visual Basic(VBA)
-
7
同じマクロのプログラムなのに処理速度が違う
Visual Basic(VBA)
-
8
マクロのスピードがダウンする??
Visual Basic(VBA)
-
9
ExcelVBA実行後に時々落ちる
Visual Basic(VBA)
-
10
【ExcelVBA】5万行以上のデータ比較の効率的な処理方法について
Visual Basic(VBA)
-
11
DoEventsが必要な理由について
Visual Basic(VBA)
-
12
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
13
エクセルのメモリ使用状況/Application.Memoryの代替手段
Visual Basic(VBA)
-
14
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ATTファイルってどうやって開け...
-
StreamReaderで読み込んだファ...
-
[VB.NET] 処理の高速化を行いた...
-
C#で大容量ファイルの一部編集
-
フォームファイル(.frm)を開...
-
VB(VBA)で、バイナリデータを使...
-
VBSでテキストファイルの2行目...
-
accessでクエリをExcelにエクス...
-
CSVファイルの時刻の形式について
-
Thunderbird 受信メールからの...
-
iTextでPDFを表示させたら日本...
-
VBAで、JPG写真の撮影日時を読...
-
Eclipseで検索ができなくなった
-
VB2008 iniファイルの全セクシ...
-
0バイトのテキストファイル
-
HTMLテキストリンクでExcelファ...
-
コマンドプロンプトのテキスト...
-
【VBA】印刷マクロのループ処理...
-
ファイル作成日時と更新日時を...
-
[transformNode]メソッドについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ATTファイルってどうやって開け...
-
テキストファイルの一部分を抽...
-
WORDのVBAで差し込み印刷時、デ...
-
[VB.NET] 処理の高速化を行いた...
-
テキストファイル固定長データ...
-
Excel VBAが徐々に遅くなる
-
ファイル変換
-
c言語での単語数のカウント
-
パイソンでのテキストデータの...
-
ストリームについて。
-
「VB.net」DataGridViewへの選...
-
テキストファイル内の文字の有...
-
最新日付のテキストファイルを...
-
C言語
-
バイナリファイルの区別
-
Javaのプロパティファイルの文...
-
VB(VBA)で、バイナリデータを使...
-
C言語でテキストファイルをバイ...
-
EXCEL VBAでカンマ区切りテキス...
-
C言語のソースからコメントを抜...
おすすめ情報