更新日:、 作成日:

VBA ファイルの存在確認

はじめに

Excel VBA マクロでファイルの存在確認をする方法を紹介します。

FileExists 関数を使うと指定したファイルが存在していると True を返します。

パスの大文字と小文字の区別はしません。

フォルダの存在確認をするには「フォルダの存在確認」をご覧ください。

FileSystemObject について

ここでは VBA の標準の関数より便利な FileSystemObject を使った方法を紹介しています。基本的な使い方については「FileSystemObject ファイル操作の基礎」をご覧ください。

コードを見やすくするため FileSystemObject を参照設定しています。また、エラー処理は行っていません。

ファイルの存在確認

指定したファイルの存在確認

Dim fso As FileSystemObject
Set fso = New FileSystemObject ' インスタンス化

Dim b As Boolean
b = fso.FileExists("D:\Tips.txt") ' ファイルの存在確認
Debug.Print(b) ' True なら存在する

' 後始末
Set fso = Nothing

fso.FileExists 関数で指定したパスにファイルが存在するかどうかを判定できます。存在するときは True を返します。

フォルダにファイルがあるか確認

Dim fso As FileSystemObject
Set fso = New FileSystemObject ' インスタンス化

Dim folderPath As String ' フォルダのパス
folderPath = "D:\TipsFolder"

Dim fileName As String   ' ファイル名
fileName = "Tips.txt"

Dim fullPath As String   ' 完全パス
fullPath = fso.BuildPath(folderPath, fileName) ' パスの結合
Debug.Print(fullPath) ' D:\TipsFolder\Tips.txt

Dim b As Boolean
b = fso.FileExists(fullPath) ' ファイルの存在確認

' 後始末
Set fso = Nothing

fso.BuildPath 関数で 2 つのパスを結合できます。フォルダのパスとファイル名を結合すれば、そのフォルダにファイルが存在するか確認できます。

パスの操作について詳しくは「パスの操作」をご覧ください。