
エクセルのVBAであるテキストファイルを読み込み、計算してCSVで吐き出すというプログラムを組んでいます。
質問はその計算スピードが徐々に遅くなってしまうということです。
計算し始めは大体1テキストファイルを読み込んでCSVに吐き出すのに1分くらいで済むのですが、3,4時間回してると1テキストファイル⇒CSVに2,30分かかってしまいます。
シートが増えていたりグラフを追加したりはしていません。
また、VBAの変数もできるだけ初期化するようにしてます。
読み込んでいくテキストファイルのサイズもそんなに変わらないです。
何か考えられる原因はないでしょうか?
ご教授宜しくお願いします。
No.2ベストアンサー
- 回答日時:
こんばんは。
>計算し始めは大体1テキストファイルを読み込んでCSVに吐き出す
「読み込んで」という、この過程に何が使われているのか分かりません。
コードをみないで、本来は、何も言うことも出来ません。しかし、通常、そのような内容の場合は、一切、ワークシートには出さないようにします。すべて、配列の中で処理していきます。
ワークシートに出せば、取り込んだものは、オブジェクトとして働いていますから、ブックの内部に積み下ろしされていないものが残しているような気がします。
ご回答ありがとうございます。
ワークシートに出していたことが原因でした。
本来なら配列ですべて処理できればよいのですが、
複雑すぎて一旦シートに落として処理してました。
No.1
- 回答日時:
関数は永久ループさせないでタイマーで繰り返す
(関数から抜けない限り内部で使用したメモリが自動開放されない)
使用済み配列は Erase する
使用済みオブジェクトは Nothing を Set する
などいろいろと対策はありますが
残念ながらやはりインタープリタ言語なので
メモリを完全に管理することはできないようです。。
いろいろ考慮した結果、シートを作成⇒削除を繰り返したことが
原因だったようです。
そこでプログラムを実行してるエクセルとは別のファイルに
シートを作成し、処理が終わったらエクセルごと閉じるという
プログラムに変えた結果、処理が遅くなることが解消されました。
回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) VBAで出力したCSVファイルの先頭にカンマを挿入したい 5 2022/10/14 12:20
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Visual Basic(VBA) vbaのループ処理について 6 2022/05/06 15:35
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
このQ&Aを見た人はこんなQ&Aも見ています
-
EXCEL VBA マクロ 実行する度に処理速度がどんどん遅くなる原因が知りたい
Excel(エクセル)
-
〔Excel:VBA〕マクロの実行が異常に遅くなる
Excel(エクセル)
-
マクロのスピードがダウンする??
Visual Basic(VBA)
-
-
4
Excel VBA 処理後データが重たくなる&処理スピードが遅いのを解決したい
Visual Basic(VBA)
-
5
エクセルVBA コードが同じでもファイルによって処理速度が大きく変わるのはなぜ
Visual Basic(VBA)
-
6
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
7
EXCELのVBAで作業ファイルを閉じてもメモリの解放をしなくて困っています
Excel(エクセル)
-
8
同じマクロのプログラムなのに処理速度が違う
Visual Basic(VBA)
-
9
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
10
DoEventsが必要な理由について
Visual Basic(VBA)
-
11
【Excel VBA】 WorksheetやRangeオブジェクトとして宣言した変数の開放は必要でしょうか?
その他(Microsoft Office)
-
12
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
13
最近急にVBAの処理速度が遅くなりました。
Excel(エクセル)
-
14
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
15
ExcelのVBAでメモリ解放できない
Visual Basic(VBA)
-
16
エクセルStatusBar表示が変化しない
Excel(エクセル)
-
17
VBAの配列サイズとメモリに関して
Visual Basic(VBA)
-
18
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
19
Excelのマクロ実行後に動作が重くなる。
その他(Microsoft Office)
-
20
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel+VBAでフランス語を扱いた...
-
テキストファイルを読んで、Exc...
-
テキストファイルの一部分を抽...
-
エクセルVBAでメールの自動作成...
-
エクセルのマクロについて教え...
-
秀丸エディタ
-
Javaのプロパティファイルの文...
-
VBSでテキストファイルの2行目...
-
VBscriptでWebサイトから取得し...
-
テキストファイル(英語&日本...
-
テキストファイル固定長データ...
-
テキストファイルを自動編集したい
-
C言語のソースからコメントを抜...
-
メールの添付ファイル
-
バイナリデータの中からMidのよ...
-
英単語の出現数を数える方法
-
WORDのVBAで差し込み印刷時、デ...
-
VB(VBA)で、バイナリデータを使...
-
ファイルの入出力でのテキスト ...
-
Delphiのreadlnについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ATTファイルってどうやって開け...
-
テキストファイルの一部分を抽...
-
既存のテキストファイルを開く方法
-
VB(VBA)で、バイナリデータを使...
-
テキストファイル固定長データ...
-
テキストファイル内容の、16進...
-
WORDのVBAで差し込み印刷時、デ...
-
VBSでテキストファイルの2行目...
-
Excel VBAが徐々に遅くなる
-
StreamReaderで読み込んだファ...
-
ファイル変換
-
[VB.NET] 処理の高速化を行いた...
-
テキストファイルをSQLServerデ...
-
TXTファイルデーターをEX...
-
バイナリファイルの区別
-
Zbarというソフトについて
-
テキストファイルの特定行の削...
-
バイナリデータの中からMidのよ...
-
エクセルVBAでメールの自動作成...
-
UTF-8とASCIIコードにおける互...
おすすめ情報