和風スパゲティのレシピ

日本語でコーディングするExcelVBA

FileSystemObject.FolderExistsメソッド

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