VBA ファイルがあるか 存在確認

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」にチェックを入れる必要があります。

◆まとめ

冒頭に説明した通り、簡単でしたよね。

存在しないファイルを指定してしまい、エラーが発生するのは、よくあることです。

ですので、事前に今回、紹介したサンプルコードを実行して「ファイル」が存在するか確認してくださいね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です