【VBA】指定したフォルダ配下のフォルダ一覧を取得する

VBAで
 ・指定したフォルダ配下の
 ・フォルダ一覧を取得
できます!

PR

VBAコード

ここでは例として、
 ・デスクトップにあるフォルダ「test」配下の
 ・フォルダ一覧を取得してシート「sample」へ出力
します。
※シート「sample」へ出力後、シート「sample」の列幅を自動調整します。

フォルダ「test」
フォルダ「test」
フォルダ「test」配下にはフォルダが5つある
フォルダ「test」配下にはフォルダが5つある
Option Explicit

Sub sample()
    
    Dim inputFolder As String
    Dim outputWs As Worksheet
    Dim outputColumn As Long
    Dim outputRow As Long
    Dim fso As Object
    Dim folder As Object

    '対象フォルダ
    inputFolder = "C:\Users\user\Desktop\test"
    '出力シート
    Set outputWs = Worksheets("sample")
    '出力列
    outputColumn = 2
    '出力行
    outputRow = 2
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'フォルダ数分繰り返し
    For Each folder In fso.GetFolder(inputFolder).SubFolders
        '出力シートへフォルダ名を出力
        outputWs.Cells(outputRow, outputColumn) = folder.Name
        '出力行をインクリメント
        outputRow = outputRow + 1
    Next
    
    '出力シートの出力列の列幅を自動調整
    outputWs.Columns(outputColumn).AutoFit
    
    '後片付け
    Set fso = Nothing
    
End Sub

以下を指定します。
※状況に応じて任意の値を指定してください。

・対象フォルダ(13行目)
・出力シート(15行目)
・出力列(17行目)
・出力行(19行目)

「FileSystemObject」の「GetFolder」メソッドにより、「Folderオブジェクト」を取得します(24行目)。

「Folderオブジェクト」の「SubFolders」プロパティにより、「Foldersコレクション」を取得します(24行目)。

「Foldersコレクション(=Folderオブジェクト)」の数だけ繰り返し処理をします(24~29行目)。

「Folderオブジェクト」の「Name」プロパティにより、フォルダ名を取得します(26行目)。

PR

実行結果

VBAで
 ・指定したフォルダ配下の
 ・フォルダ一覧を取得
できました。

実行結果
実行結果
PR

参考①

ファイル一覧の取得もできます。

詳細は以下の記事をご確認ください。

PR

参考②

フォルダ数の取得もできます。

詳細は以下の記事をご確認ください。

PR

参考③

フォルダ一覧を取得する前に、対象フォルダの存在有無を確認した方が良いかもです。

フォルダの存在有無の確認方法は、以下の記事をご確認ください。

PR

参考④

上記のコードで使用した以下の詳細は、公式サイトをご確認ください。

●「FileSystemObject」の「GetFolder」メソッド


●「Folderオブジェクト」の「SubFolders」プロパティ


●「Foldesコレクション」


●「Folderオブジェクト」の「Name」プロパティ