• ベストアンサー

すでにファイルが開かれている時のエラー回避

VB2010で、ファイルを開いていると下記のコードでエラーがでます。 Dim SR As New System.IO.StreamReader(AppPath & "諸元一覧.csv", System.Text.Encoding.Default) 「諸元一覧.csv」ファイルを閉じてください。 とメッセージを出し、ExitSubしたいのですが、 どういうコードにすればよいのでしょうか。 教えてください。よろしくお願いいたします。

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

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

先の回答にあるように、ファイルを開いていてもエラーが出ない場合もあります。 ファイルがロックされている場合は IOException が発生するようなので、 Try ~ Catch で IOException をエラートラップする方法もあります。 (※ただのエラートラップではファイルが存在しない等の他のエラーと  区別できませんので、エラーの種類まで限定してエラートラップします。)

ddtqp
質問者

お礼

いつもよい回答ありがとうございます。 勉強になりました。 下記コードで対応しました。 Try Dim SR As New System.IO.StreamReader(AppPath & "ROHR諸元一覧.csv", System.Text.Encoding.Default) <処理> Catch ex As System.IO.FileNotFoundException MsgBox("「ROHR諸元一覧.csv」ファイルが同じ階層にありません。") Me.Close() Catch ex As System.IO.IOException MsgBox("「ROHR諸元一覧.csv」ファイルが開いている可能性があります。") Me.Close() End Try

その他の回答 (1)

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

関連するQ&A