VBAで楽々【ファイル存在確認】【サンプルコード有】初心者でも一発マスター
VBAで指定したフォルダ内の「ファイル」が存在するか確認する方法を解説します。
VBAからファイルを作成する時や開く時に
指定したファイルをが存在しないとエラーになります。
エラーを回避するために「ファイル」の存在するか事前にチェックすることをオススメします。
フォルダ内にファイルの存在チェックするサンプルコードもありますので
それを元に解説していきます。
指定したフォルダ内の「ファイル」の存在確認は、対して難しくありません。
ご安心してサクっとご覧ください。
VBAから高速でブックを開く方法を知りたい方は、こちらをご覧ください。
< ---目次--- >
◆「ファイル存在確認」する方法
・サンプルコード
Sub 指定フォルダ内のファイルの存在確認()
Dim objWSH As New IWshRuntimeLibrary.WshShell '「Windows Script Host Object Model」を参照設定
Dim TargetPath As String, TargetName As String
Dim DesktopPath As String, ThisWbPath As String
'デスクトップのパスを取得
DesktopPath = objWSH.SpecialFolders("Desktop")
'マクロ実行ブックのパスを取得
ThisWbPath = ThisWorkbook.Path
'検索するファイルパスを確定
TargetName = "A.txt"
TargetPath = ThisWbPath & "\" & TargetName
'TargetPath = DesktopPath & "\" & TargetName
'指定ファイルがあるか確認
If Dir(TargetPath) <> "" Then
MsgBox TargetPath & vbCrLf & "が存在します"
Else
MsgBox TargetPath & vbCrLf & "が存在しません"
End If
End Sub
・解説
指定したフォルダ内の「ファイルの存在確認」をするサンプルコードの解説をします。
変数[TargetPath]に検索したいファイル名のフルパスを格納します。
フルパスとはフォルダアドレスとフォルダ名(拡張子を含む)を結合したものになります。
Dir関数を実行すると、ファイルがある場合は、ファイル名が返ってきます。
ファイルが存在しない場合は、何も返ってきませんので
“空白でない”場合は、ファイルが存在すると判断する事ができます。
なので、サンプルコードを実行するだけで、ファイルの存在をチェックする事ができます。
・余談
余談ですが、知っておくと、ファイルの存在チェックに便利なので紹介します。
Dim objWSH As New IWshRuntimeLibrary.WshShell '「Windows Script Host Object Model」を参照設定
DesktopPath = objWSH.SpecialFolders("Desktop")
上記コードの「DesktopPath = objWSH.SpecialFolders(“Desktop”)」を実行することで
デスクトップのパスを取得する事ができます。
objWSH.SpecialFoldersを実行するには
参照設定にて「Windows Script Host Object Model」にチェックを入れる必要があります。
◆まとめ
冒頭に説明した通り、簡単でしたよね。
存在しないファイルを指定してしまい、エラーが発生するのは、よくあることです。
ですので、事前に今回、紹介したサンプルコードを実行して「ファイル」が存在するか確認してくださいね。