更新日:、 作成日:

VBA フォルダの存在確認

はじめに

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

FolderExists 関数を使って指定したフォルダが存在していると True を返します。

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

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

FileSystemObject について

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

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

フォルダの存在確認

指定したフォルダの存在確認

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

Dim b As Boolean
b = fso.FolderExists("D:\TipsFolder") ' フォルダの存在確認
Debug.Print(b)

' 後始末
Set fso = Nothing

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

フォルダの中にフォルダがあるか確認

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

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

Dim folderName As String   ' フォルダ名
folderName = "SubTips"

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

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

' 後始末
Set fso = Nothing

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

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