![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
VBAで
・指定したフォルダ配下の
・フォルダ一覧を取得
できます!
VBAコード
ここでは例として、
・デスクトップにあるフォルダ「test」配下の
・フォルダ一覧を取得してシート「sample」へ出力
します。
※シート「sample」へ出力後、シート「sample」の列幅を自動調整します。
![フォルダ「test」](https://excel-vba.work/wp-content/uploads/2022/09/vba_get_folder_list_001.png)
![フォルダ「test」配下にはフォルダが5つある](https://excel-vba.work/wp-content/uploads/2022/09/vba_get_folder_list_002.png)
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
実行結果
VBAで
・指定したフォルダ配下の
・フォルダ一覧を取得
できました。
![実行結果](https://excel-vba.work/wp-content/uploads/2022/09/vba_get_folder_list_003.png)
参考①
ファイル一覧の取得もできます。
詳細は以下の記事をご確認ください。
参考②
フォルダ数の取得もできます。
詳細は以下の記事をご確認ください。
参考③
フォルダ一覧を取得する前に、対象フォルダの存在有無を確認した方が良いかもです。
フォルダの存在有無の確認方法は、以下の記事をご確認ください。
参考④
上記のコードで使用した以下の詳細は、公式サイトをご確認ください。
●「FileSystemObject」の「GetFolder」メソッド
●「Folderオブジェクト」の「SubFolders」プロパティ
●「Foldesコレクション」
●「Folderオブジェクト」の「Name」プロパティ