• ベストアンサー

エラーを無視して次へ行きたい

下のループで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構文が正しいことを確認してください。また、ファイルを作成し直し、それを開く前に他のアプリケーションを閉じることができます。

質問者が選んだベストアンサー

  • ベストアンサー
noname#62128
noname#62128
回答No.1

これではだめですか。 On Error Resume Next For i = 0 To 10  Workbooks.Open Filename:=ThisWorkbook.Path & "\" & text(i).xml Next i On Error Goto 0

wakaranai_kun
質問者

お礼

動きました。ありがとうございます。 ただ、ループしている間に他の処理もしていて、 そこも無視されてしまうのでちょっとマズいか? って気もしました。 で、いろいろ考えた結果、Excelはやめて、DOM のノードに直接アクセスして値を取ることに しました。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • tom11
  • ベストアンサー率53% (134/251)
回答No.2

こんにちは、 >ループの途中で 実行時エラー '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
質問者

補足

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" でしたね。 済みません。 で、すべてがエラーではなくて途中でおかしくなるんですね。

すると、全ての回答が全文表示されます。

関連するQ&A