フォルダが存在するかどうかを確認する関数
タイトルのマクロは、以下です。
'****************************************************************
'* フォルダが存在するかどうかを確認する関数
'* 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 With
FileSystemObject
を新規に作成し、With
ブロック内で使用します。GetFolder
メソッドを使って、指定されたフォルダが存在するかどうかを確認します。このメソッドが成功すると、フォルダが存在することが確認できます。
ExistFolder = True ' フォルダが存在すればTrueを設定
Exit Function ' 関数を終了
- フォルダが存在する場合、
ExistFolder
を True に設定します。 Exit Function
により、関数を正常終了します。
ErrHdl: ' エラーハンドラ
ExistFolder = False ' フォルダが存在しない場合はFalseを設定
- ここはエラーハンドラです。
GetFolder
メソッドがエラーを発生させた場合に実行されます。 - エラーが発生した場合、フォルダが存在しないとみなして
ExistFolder
を False に設定します。