
EXCELのVBAでマクロを使ってファイルを開こうとしている際、指定したファイルが存在しなかった場合、普通はマクロのエラーが出て「ファイルが存在しません」となりますが、指定したファイルが存在しなかった場合には、メッセージボックスを表示させ、そこで処理を中止させるか、または、その無いファイルの処理は飛ばして次のファイルの処理を行う用にさせることはできるでしょうか?
Sub test1()
Workbooks.Open Filename:="C:\Documents and Settings\001.xls
(001が存在しない場合メッセージボックスを出しマクロを中止するか次の002を開くか選ぶ)
Workbooks.Open Filename:="C:\Documents and Settings\002.xls
End sub
No.4ベストアンサー
- 回答日時:
こんな感じでしょうか?
Sub sample()
Dim Fname As String
Fname = "C:\Documents and Settings\001.xls"
If Dir(Fname) <> "" Then 'ファイルの有無をチェック
Workbooks.Open Filename:=Fname
ElseIf MsgBox("ファイル2を開きますか?", vbYesNo + vbQuestion, "問い合わせ") = vbYes Then
Workbooks.Open Filename:="C:\Documents and Settings\002.xls"
End If
End Sub
No.3
- 回答日時:
On Error GoToを仕掛けてあると、エラー発生時の処理が行えますが、通常はエラーが起こりそうな箇所ではエラーが発生しないかどうかを先に確認します。
If Dir("C:\Documents and Settings\001.xls") = "" Then
rtn = MsgBox("マクロを中止する?Noを選ぶと次の002を開きます", vbYesNo)
If rtn = vbYes Then Exit Sub
Else
Workbooks.Open Filename:="C:\Documents and Settings\001.xls"
End If
Workbooks.Open Filename:="C:\Documents and Settings\002.xls
No.2
- 回答日時:
結論としては、可能です。
ファイルの存在チェックはDir関数を使ってください。
以下サンプル
Dim strFilePath As String
Dim strFileExist As String
strFileExist = Dir(strFilePath)
if strFileExist = "" Then
If MsgBox("ファイルが存在しませんYes , No ", vbYesNo) = vbYes Then
'次の002
Else
'中止
End If
End If
ディレクトリの存在可否は、Dir(パス, vbDirectory) となります。
No.1
- 回答日時:
この二つ組み合わせればできそうですね
http://www.vba-world.com/if_then_else.html
http://www.vba-world.com/msgbox_1.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
excelのマクロで該当処理できなければ飛ばして進むにはどうすればよいのでしょうか
Visual Basic(VBA)
-
ファイルが見つからない時、スルーしたい。
Visual Basic(VBA)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
6
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
7
VBA 見つからなかった時の処理
Excel(エクセル)
-
8
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
9
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
10
VBA 存在しないシートを選択した時にエラーメッセージを表示するには?
Visual Basic(VBA)
-
11
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
12
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
13
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
14
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
15
エクセルVBAでパスの¥マークについて
Access(アクセス)
-
16
【Excel VBA】指定行以降をクリアするには?
Visual Basic(VBA)
-
17
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
18
Excel マクロ VBA プロシージャが大きすぎます のエラー対処方法
Visual Basic(VBA)
-
19
VBAでシートコピー後、シート名が重複している時の処理
Access(アクセス)
-
20
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL VBA 指定したファイルが...
-
フォルダ内のexcelファイルを順...
-
エクセルマクロで不特定なファ...
-
VBAでワークブックの名前を変数...
-
エクセル 複数ファイルの一括...
-
accessフォルダを移動したらフ...
-
VBA EXCELファイル選択⇒指定セ...
-
ファイルを開かずにマクロを実行
-
vlookup関数の引数を変数で指定...
-
Excel VBA でファイルが開かれ...
-
フォルダ内の複数ファイルの一...
-
エクセルのxls形式からxlsx形式...
-
データ参照先が別ファイルの場...
-
ACCESS VBAでファイルを開くダ...
-
エクセルデータが突然破損します。
-
エクセル(マクロ)のファイル...
-
【Excel VBA】ファイル名が一...
-
複数のエクセルファイルに対し...
-
Accessのaccdbファイルを起動で...
-
<ACCESS VBA -> EXCEL>getObjec...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBA 指定したファイルが...
-
VBAでワークブックの名前を変数...
-
エクセルマクロで不特定なファ...
-
フォルダ内のブック全部にパス...
-
フォルダ内のexcelファイルを順...
-
エクセルのxls形式からxlsx形式...
-
ファイルを開かずにマクロを実行
-
【Excel VBA】ファイル名が一...
-
エクセル(マクロ)のファイル...
-
vlookup関数の引数を変数で指定...
-
エクセル 複数ファイルの一括...
-
ファイルの保存場所を変えたら...
-
エクセルのシートの数を数えた...
-
accessフォルダを移動したらフ...
-
Accessのaccdbファイルを起動で...
-
データ参照先が別ファイルの場...
-
秀丸:あらかじめ設定した複数...
-
Excel VBA でファイルが開かれ...
-
エクセルデータが突然破損します。
-
エクセルマクロ 異なるファイ...
おすすめ情報