- ベストアンサー
エラーを無視して次へ行きたい
下のループでXMLファイルをExcelに取得しているのですが、ループの途中で 実行時エラー '1004'で止まる場合があります。落としたところは後で取ればいいかと、Resume Nextをしているのですが、次の i へいけずに、エラーメッセージがでたまま止まってしまいます。 この場合、エラーを無視して次へ行くにはどうしたらいいのでしょうか? For i = 0 To 10 On Error Resume Next Workbooks.Open Filename:=ThisWorkbook.Path & "\" & text(i).xml On Error Goto 0 Next i 実行時エラー '1004' エラーのため、この XML ファイルを開けません。正しい XML ファイルであり、XML構文が正しいことを確認してください。また、ファイルを作成し直し、それを開く前に他のアプリケーションを閉じることができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
![noname#62128](https://gazo.okwave.jp/okwave/images/contents/av_nophoto_100_6.gif)
これではだめですか。 On Error Resume Next For i = 0 To 10 Workbooks.Open Filename:=ThisWorkbook.Path & "\" & text(i).xml Next i On Error Goto 0
その他の回答 (1)
- tom11
- ベストアンサー率53% (134/251)
こんにちは、 >ループの途中で 実行時エラー '1004' ループの途中と言う根拠は??? 私が見る限り、XMLファイルは、一つも、開いていないような気がするのですが。 変数text(i)に、何が入っているかわからないので、 なんともいえませんが。 普通、 text(0)="Book1.xml" が入ってたら、 ThisWorkbook.Path & "\" & text(0)の表現になるし text(0)="Book1" ThisWorkbook.Path & "\" & text(0) & ".xml" になるような気がします。 ThisWorkbook.Path & "\" & text(i).xml のような表現は、使えないような。 よって、ループの途中ではなく、 最初の段階で、エラーになっていると思います。
![wakaranai_kun](https://gazo.okwave.jp/okwave/images/contents/av_nophoto_100_2.gif)
補足
text(0)="Book0.xml" text(1)="Book1.xml" text(2)="Book2.xml" text(3)="Book3.xml" ・ ・ ・ text(10)="Book10.xml" があって、 ThisWorkbook.Path & "\" & text(i) & ".xml" でしたね。 済みません。 で、すべてがエラーではなくて途中でおかしくなるんですね。
お礼
動きました。ありがとうございます。 ただ、ループしている間に他の処理もしていて、 そこも無視されてしまうのでちょっとマズいか? って気もしました。 で、いろいろ考えた結果、Excelはやめて、DOM のノードに直接アクセスして値を取ることに しました。 ありがとうございました。