
FolderオブジェクトのIsRootFolderプロパティについてです。
Menu
IsRootFolderプロパティ
概要
指定したフォルダーが、
ルートフォルダー(※)の場合は → Trueを返します。
ルートフォルダーでない場合は → Falseを返します。
※ルートフォルダーとは一番上の階層のフォルダーのことです。
構文
FolderObject.IsRootFolder
VBAサンプル
ルートフォルダーか判定(True)
1 2 3 4 5 6 7 8 9 10 11 12 | Sub test1() 'FileSystemObjectをセット Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") 'FolderオブジェクトをFileSystemObjectのGetFolderメソッドでセット Dim fol As Folder Set fol = fso.GetFolder("D:\") 'FolderオブジェクトのIsRootFolderプロパティでルートフォルダーの判定 Debug.Print fol.IsRootFolder End Sub |
【結果】
ルートフォルダーか判定(False)
1 2 3 4 5 6 7 8 9 10 11 12 | Sub test2() 'FileSystemObjectをセット Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") 'FolderオブジェクトをFileSystemObjectのGetFolderメソッドでセット Dim fol As Folder Set fol = fso.GetFolder("D:\FSO") 'FolderオブジェクトのIsRootFolderプロパティでルートフォルダーの判定 Debug.Print fol.IsRootFolder End Sub |
【結果】
ルートフォルダーか判定(応用)
親フォルダーパスを全取得の例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Sub test3() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim fol As Folder Set fol = fso.GetFolder("D:\FSO\Folder1") 'ルートフォルダーではなかったら親フォルダー名を繰り返し取得 If fol.IsRootFolder Then Debug.Print "ルートフォルダーです" Else Do While fol.IsRootFolder = False Set fol = fol.ParentFolder '←親フォルダーオブジェクトをセット Debug.Print fol.Path Loop End If End Sub |
【結果】
親フォルダーオブジェクト取得詳細 → ParentFolderプロパティ