- 締切済み
Excel VBA 突然停止
お世話になります。 標記の件で悩んでおります。 out.csv→→→中間ファイル.xlsm→本処理ファイル.xlsm 201510.csv→ 上記の通り、2つのExcelフォーマットのcsvファイルを中間ファイルに読み込ませるVBAを作成し、中間ファイルを一度作りました。これは正常に処理が止まらず、正しく書き込まれています。 因みに、csvエクセル形式行数は3万行ぐらいです。レコード数は、100万行ですが、私は、csvのデータをレコード数で読み込ませていません。 単純に、エクセルフォーマットでcsvファイルを開き、範囲指定してそれを、単純に中間ファイルでTempシートに単純にコピペし、不要なコメント行とか空欄を中間ファイルのマクロで、削除し、中間ファイルで必要なデータを作成しています。 ここまでは、間違いなく出来ております。つまり、レコード数を何か別のPGで読み込ませてエクセルに取り込ませることはしておりません。 そこで、最終の本処理ファイル.xlsmに中間ファイルをオープンして読み込ませると、途中で停止してしまいます。 そこで、本処理ファイルのVBAのプログラムの関数の一つ一つにブレークポイントを入れ、処理したところ、今度は、問題なく出来てしまいます。 結果を担当者に聞くと、間違いなく出来ているようだと言っていました。 そこで、ブレークポイントではなく、自動処理できないかと思い、もう一度、中間ファイルを本処理ファイルでオープンすると、予想通り、停止します。 そこで、再度、先ほどと同じ様にブレークポイントを入れて処理をしようとしたところ、読み込むこともあるし、読み込んでも停止してしまいます。 論理上、このようなことが、あるのかと思って困っています。 環境は、各ファイルをファイルサーバーに置いて処理しています。 ローカル、自分のPC単体ではやっていません。 Win 7 Professional 32bit版 4GBのPCです。 2010 Excel ご回答よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- BarcodeMaster
- ベストアンサー率73% (17/23)
直接的な回答ではありませんが、 ・PC上にコピーして処理を実行。終わったらファイルサーバー上に戻す。 ・本処理ファイル.xlsmからout.csvを開き、1行ごとに処理。 が妥当だと思います。
お礼
コメント有難うございます。
補足
コメント有難うございます。 >・本処理ファイル.xlsmからout.csvを開き、1行ごとに処理。 残念ながら、中間ファイルで使用するデータがあるシートに存在しています。 これは、本処理ファイルには存在しません。 ですので、csvを、直接、本処理データに処理することはできないプロセスとなっています。 ただし、PC上に全てのデータを置き、処理して、その必要なファイルだけをサーバー上に戻すことは論理的にできますので、実施します。 >ファイルサーバー上に戻す こういう停止は、ネットワークに原因があるという前提ですね? とにかく、ご回答有難うございます。