フォルダが存在するかどうかを確認する関数
タイトルのマクロは、以下です。
'****************************************************************
'* フォルダが存在するかどうかを確認する関数
'* myFolder: 確認するフォルダのパス
'* 戻り値: フォルダが存在すればTrue、存在しなければFalse
Public Function ExistFolder(myFolder As String) As Boolean
On Error GoTo ErrHdl ' エラーハンドリングを設定
ExistFolder = False ' 初期値としてFalseを設定
With New FileSystemObject ' FileSystemObjectを新規作成
.GetFolder (myFolder) ' 指定されたフォルダが存在するか確認
End With
ExistFolder = True ' フォルダが存在すればTrueを設定
Exit Function ' 関数を終了
ErrHdl: ' エラーハンドラ
ExistFolder = False ' フォルダが存在しない場合はFalseを設定
End Function各部分の詳細説明
- この関数は、指定されたフォルダが存在するかどうかを確認し、その結果をブール値(True/False)で返します。
myFolderは、確認するフォルダのパスを示す文字列です。
On Error GoTo ErrHdl ' エラーハンドリングを設定
ExistFolder = False ' 初期値としてFalseを設定On Error GoTo ErrHdlは、エラーが発生した場合にエラーハンドラ(ErrHdl)にジャンプするように設定します。- 関数の戻り値である
ExistFolderを初期値として False に設定します。
With New FileSystemObject ' FileSystemObjectを新規作成
.GetFolder (myFolder) ' 指定されたフォルダが存在するか確認
End WithFileSystemObjectを新規に作成し、Withブロック内で使用します。GetFolderメソッドを使って、指定されたフォルダが存在するかどうかを確認します。このメソッドが成功すると、フォルダが存在することが確認できます。
ExistFolder = True ' フォルダが存在すればTrueを設定
Exit Function ' 関数を終了- フォルダが存在する場合、
ExistFolderを True に設定します。 Exit Functionにより、関数を正常終了します。
ErrHdl: ' エラーハンドラ
ExistFolder = False ' フォルダが存在しない場合はFalseを設定- ここはエラーハンドラです。
GetFolderメソッドがエラーを発生させた場合に実行されます。 - エラーが発生した場合、フォルダが存在しないとみなして
ExistFolderを False に設定します。


