
エクセルの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)
-
〔Excel:VBA〕マクロの実行が異常に遅くなる
Excel(エクセル)
-
-
4
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
5
同じマクロのプログラムなのに処理速度が違う
Visual Basic(VBA)
-
6
マクロのスピードがダウンする??
Visual Basic(VBA)
-
7
Excel VBA 処理後データが重たくなる&処理スピードが遅いのを解決したい
Visual Basic(VBA)
-
8
DoEventsが必要な理由について
Visual Basic(VBA)
-
9
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
10
EXCELのVBAで作業ファイルを閉じてもメモリの解放をしなくて困っています
Excel(エクセル)
-
11
ExcelVBA実行後に時々落ちる
Visual Basic(VBA)
-
12
VBAの配列サイズとメモリに関して
Visual Basic(VBA)
-
13
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
14
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
15
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
16
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルに写真が貼れない(フ...
-
Office2021のエクセルで米国株...
-
エクセルのVBAで集計をしたい
-
【マクロ】【相談】Excelブック...
-
vba テキストボックスとリフト...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
【画像あり】オートフィルター...
-
【マクロ】【配列】3つのシー...
-
エクセルのライセンスが分かり...
-
【マクロ】元データと同じお客...
-
【関数】3つのセルの中で最新...
-
勤怠表について ABS、TEXT関数...
-
【マクロ】【画像あり】❶ブック...
-
【Officer360?Officer365?の...
-
セルにぴったし写真を挿入
-
LibreOffice Clalc(またはエク...
-
【マクロ】excelファイルを開く...
-
エクセルシートの見出しの文字...
-
【関数】=EXACT(a1,b1) a1とb1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ATTファイルってどうやって開け...
-
テキストファイルの一部分を抽...
-
テキストファイル固定長データ...
-
既存のテキストファイルを開く方法
-
VB(VBA)で、バイナリデータを使...
-
テキストファイル内容の、16進...
-
VBSでテキストファイルの2行目...
-
ストリームについて。
-
エクセルVBAでメールの自動作成...
-
受信メールを一括してテキスト...
-
WORDのVBAで差し込み印刷時、デ...
-
別のサーバーのテキストファイ...
-
excelからtextへ変換する際の出...
-
テキストファイルの特定行の削...
-
Zbarというソフトについて
-
Excel VBAが徐々に遅くなる
-
テキストファイル内の文字の有...
-
テキストファイルを検索・編集...
-
HTMLでこんなこと可能ですか??
-
こんな場合はどうすればいいの?
おすすめ情報