ファイルを検索してフォルダ内に無かったときは「実行時エラー’1004’ ○○○.xlsxが見つかりません。ファイル名およびファイルの保存場所が正しいかどうかを確認してください。」のエラーメッセージが表示されます。
事前に検索するファイルがフォルダ内にあるか調べてから開くようにすれば、ファイルがフォルダ内に有ったときはファイルを開き、もし無かったときは「ファイルはフォルダ内にありません。」とメッセージを表示してプログラムを終了できる使う人に優しいプログラムになると思います。
Sub ファイルがフォルダ内にあるか調べてファイルを開く()
Dim name As String
name = Range("A1").Value 'A1セルに入力したファイル名で検索します。
If Dir(ThisWorkbook.Path & "\フォルダ\" & name & ".xlsx") <> "" Then 'ファイルがフォルダ内にあるか調べます。
MsgBox "ファイルはフォルダ内にありました。"
Workbooks.Open Filename:=ThisWorkbook.Path & "\フォルダ\" & name & ".xlsx" 'ファイルを開きます。
Else
MsgBox "ファイルはフォルダ内にありません。"
End If
End Sub
Dir(ファイルパス)
Dir関数のカッコ内には検索するファイルのファイルパスを指定します。
同じフォルダに保存する
「検索するフォルダ」と「マクロを実行するファイル」を同じフォルダに入れてThisWorkbook.Pathでフォルダまでのパスを自動で取得するとUSBメモリーやSDカードからマクロを実行するときもフォルダパスを考えずに使えるので良いかと思います。
コメント