FileSystemObject

ファイルが存在するフォルダを取得する【ParentFolderプロパティ】【FileSystemObject】【ExcelVBA】

構文

Object.ParentFolder

ParentFolder・・・・指定したObjectが存在するフォルダ名を取得します。
Fileオブジェクトの存在するフォルダ名を取得します。
Folderオブジェクトの場合は親フォルダですが
Fileオブジェクトの場合はファイルが存在するフォルダ名です。

ParentFolderプロパティのサンプルコード

Public Sub sample()

    '■FileSystemObjectの宣言
    Dim fso As Object: Set fso = CreateObject("Scripting.FileSystemObject")
    
    '■ファイルの存在するフォルダ名を取得
    Debug.Print fso.GetFile("C:\vba\aaa\bbb\test.txt").ParentFolder    'C:\vba\aaa\bbb
    Debug.Print fso.GetFile("C:\vba\aaa\test.txt").ParentFolder        'C:\vba\aaa
    Debug.Print fso.GetFile("C:\vba\test.txt").ParentFolder            'C:\vba
End Sub

注意点

  • ファイルが存在しなければエラー発生します。FileExistsで事前確認必要です。
    実行時エラー53「ファイルが見つかりません。」
  • フォルダオブジェクトの場合は、親フォルダを取得しますが、
    ファイルオブジェクトの場合は、親フォルダではなく、ファイルが存在するフォルダを取得します。
  • ファイルが属するフォルダパスではなく、フォルダ名のみ取得したい場合は.Nameです。

関連記事

コメント

タイトルとURLをコピーしました