
VBAについては、かなり素人です。
エクセルのメインシートからバックグラウンドで任意のファイルを次のようなVBAで読み込んでいます。
次の場合では、存在しないファイル名等をセットすると「ファイル読込エラー」になります。「存在しないファイルが指定されています」等を表示し、Open命令では、ストップしないようにするには、どう記述すればいか教示願います。
PathName:任意のパス名
CarentFile:任意のファイル名
Application.ScreenUpdating = False
Set ObjBook = Workbooks.Open(Filename:=PathName & "\" & CarentFile)
No.3ベストアンサー
- 回答日時:
Set ObjBook = Workbooks.Open(Filename:=PathName & "\" & CarentFile)
の上下に、以下のように書き込んで下さい。
On Error Resume Next 'エラーがあっても続行する
Set ObjBook = Workbooks.Open(Filename:=PathName & "\" & CarentFile)
If Err.Number <> 0 Then 'エラーがあったら実行する
MsgBox Error(Err.Number) 'エラー番号に相当するメッセージを表示
Exit Sub 'マクロの実行を終了する
End If
ありがとうございます。
On Error Resume Next
Set ObjBook = Workbooks.Open(Filename・・・
If Err.Number <> 0 Then
"無視したファイルをあるセルに表示"
Exit Sub
以上のようにすることで、有効ファイルのみを読むことが
できるようになりました。
No.4
- 回答日時:
No2.の方のやり方で良いんですが、もし、他でエラーが発生した時、原因不明になり訳が分からなくなると思いますので、以下のようにした方が良いかと思います。
On Error GoTo エラー処理 'エラーの場合 ラベル エラー処理: 以下を実行する。
Set ObjBook = Workbooks.Open(Filename:="D:\work\test.xls")
On Error GoTo 0 'これ以降で、エラーが起きた場合、停止する。
' 続きの処理
Exit Sub
エラー処理:
If Err = 1004 Then
MsgBox ("存在しないファイルが指定されています")
Resume Next
Else
MsgBox ("ファイル読み込みエラー以外のエラーです。")
Exit Sub
End If
ファイルの読み込みの部分だけ、On Error GoTo エラー処理 で、エラー処理をして、ファイル読み込みを終わったら、エラー処理に行かないようにする。
「エラー処理:」 等のラベルは、漢字のままでも大丈夫です。「:」は、半角です。また、「エラー処理:」の前の行には、Exit Subを、入れておかないと、続きの処理を終わった後、エラー処理の部分を実行してしまいます。
No.2
- 回答日時:
Set ObjBook = Workbooks.Open(Filename:=PathName & "\" & CarentFile)
の上下に、以下のように書き込んで下さい。
On Error Resume Next 'エラーがあっても続行する
Set ObjBook = Workbooks.Open(Filename:=PathName & "\" & CarentFile)If Err.Number <> 0 Then
If Err.Number <> 0 Then 'エラーがあったら実行する
MsgBox Error(Err.Number) 'エラー番号に相当するメッセージを表示
Exit Sub 'マクロの実行を終了する
End If
No.1
- 回答日時:
sub TEST()
on error goto ErrHander
If dir(PathName & "\" & CarentFile)<>"" Then
Application.ScreenUpdating = False
Set ObjBook = Workbooks.Open(Filename:=PathName & "\" & CarentFile)
他の処理
Else
msgbox "存在しないファイルが指定されています"
End If
Exit Sub
ErrHander:
msgbox "何らかのエラーが発生しました。"
End Sub
補足
上記の件はIF~End IFで対応しています。
またそのほかの場合はOn Errorの行ととErrHander:以降で対応しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- PostgreSQL ポストグレにあるExcelファイルを開くには 1 2022/12/13 18:07
- Visual Basic(VBA) 3個のfileのセルデータを1個のfileのセルに貼り付けるVBAコードですが。 1 2023/02/20 09:21
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Visual Basic(VBA) エクセルVBA Workbook変数に変数を使ったファイル名を格納したい 5 2023/06/13 14:46
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
C言語で質問です。
-
scilabについて
-
書き込めない文字はどうすれば...
-
ShapeのVBAの中での取り扱い
-
fortran おそらく二重解法のエラー
-
Maximaでのエラーメッセージ
-
VBScriptのCreateFolderについて
-
pythonのコードエラーについて
-
VBA データ(特定値)のある最...
-
マクロOn Error GoTo ErrLabel...
-
Filter関数を用いた結果、何も...
-
ExcelにSQLの結果を表示
-
ExcelのVBAに詳しい方、教え...
-
お世話になってます
-
EXEL VBAで複数のsheetを指定す...
-
LaTeXのエラーについて(コンパ...
-
VBSCRIPTで返されるErr.Number...
-
ExcelVBAについて質問です。
-
変更履歴テーブルについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロOn Error GoTo ErrLabel...
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
String""から型'Double'への変...
-
文字列内で括弧を使うには
-
マクロで"#N/A"のエラー行を削...
-
Excel vbaについての質問
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
インポート時のエラー「データ...
-
【VBAエラー】Nextに対するFor...
-
ACCESSで値を代入できないとは?
-
【Access】Excelインポート時に...
-
VBでSQL文のUPDATE構文を使った...
-
【VB.NET】 パワポ操作を非表示で
-
「実行時エラー '3167' レコー...
-
実行時エラー 438 の解決策をお...
-
実行時エラー'-2147467259(8000...
おすすめ情報