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