SubFoldersプロパティ解説(Excel VBA)

Excel VBAのSubFolders プロパティについて

Excel VBAにおいて、ファイルやディレクトリの操作は頻繁に行われます。特に、特定のディレクトリ内のすべてのサブディレクトリをリストアップしたい場合には、SubFolders プロパティが非常に役立ちます。このプロパティは、FileSystemObject オブジェクトの Folder オブジェクトに属しています。

SubFolders プロパティの基本

SubFolders プロパティは、指定されたディレクトリ内のすべてのサブディレクトリをコレクションとして返します。このコレクションは、VBAのFor Eachループと一緒に使用することができます。

使用方法

サンプルコード1: 特定のディレクトリ内のサブディレクトリを列挙する


    Sub ListSubFolders()
        Dim fso As Object
        Dim folder As Object
        Dim subfolder As Object

        ' FileSystemObjectを初期化
        Set fso = CreateObject("Scripting.FileSystemObject")

        ' フォルダを指定
        Set folder = fso.GetFolder("C:\Users\ユーザー名\Documents")

        ' サブフォルダを列挙
        For Each subfolder In folder.SubFolders
            Debug.Print subfolder.Name
        Next subfolder

        Set fso = Nothing
    End Sub
    

このサンプルコードは、”C:\Users\ユーザー名\Documents” というパスのディレクトリ内のすべてのサブディレクトリ名をImmediate Windowに出力します。

サンプルコード2: サブディレクトリの数を取得する


    Sub CountSubFolders()
        Dim fso As Object
        Dim folder As Object

        ' FileSystemObjectを初期化
        Set fso = CreateObject("Scripting.FileSystemObject")

        ' フォルダを指定
        Set folder = fso.GetFolder("C:\Users\ユーザー名\Documents")

        ' サブフォルダの数を表示
        MsgBox folder.SubFolders.Count & " 個のサブフォルダが存在します。"

        Set fso = Nothing
    End Sub
    

このサンプルコードは、指定したディレクトリ内のサブディレクトリの数をメッセージボックスで表示します。

まとめ

SubFolders プロパティを使用することで、特定のディレクトリ内のサブディレクトリに簡単にアクセスすることができます。このプロパティは、フォルダ構成の確認や特定のディレクトリ内のファイルを操作する際に非常に役立ちます。