FileSystemObjectにてフォルダの存在を判定する、
FolderExistsメソッドについて解説します。
基本形
If FSO.FolderExists(判定したいフォルダのパス) Then
実行例
Dim FSO As New FileSystemObject ' デスクトップに「バックアップ」フォルダがなければ作成 If FSO.FolderExists("C:\Users\○○\Desktop\テスト") = False Then FSO.CreateFolder "C:\Users\○○\Desktop\テスト" End If
解説
FileSystemObjectのFolderExistsメソッドは、
判定したいフォルダパスを引数として受け取り、
そのフォルダがあればTrue/なければFalseを返します。
引数もひとつだけで返り値もBooleanと、
仕様がわかりやすいメソッドですので特記事項などはありません。
同じ処理を行う方法としてDir関数を使う方法がありますが、
Dirの場合は「存在した場合はそのフォルダ名が返ってくる」という仕様のため、
存在判定に使用する場合は「=""」「<>""」などで比較する必要があります。
If Dir(判定フォルダパス, vbDirectory) = "" Then
それに比べるとFSO.FolderExistは素直にTrue/Falseを返すため、
仕様がストレートで分かりやすいですね。
なお、あまり使わないかもしれませんが、
判定フォルダパスには相対パスも使用できます。
' カレントフォルダ内に「テスト」フォルダがあるか判定 If FSO.FolderExists(".テスト") Then ' カレントフォルダと同フォルダに「テスト」フォルダがあるか判定 If FSO.FolderExists("..テスト") Then