![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
VBAで
・指定したフォルダ配下の
・ファイル一覧を取得
できます!
VBAコード
ここでは例として、
・デスクトップにあるフォルダ「test」配下の
・ファイル一覧を取得してシート「sample」へ出力
します。
※シート「sample」へ出力後、シート「sample」の列幅を自動調整します。
![](https://excel-vba.work/wp-content/uploads/2022/09/vba_get_file_list_001.png)
![フォルダ「test」配下には5ファイルある](https://excel-vba.work/wp-content/uploads/2022/09/vba_get_file_list_003.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 file As Object
'対象フォルダ
inputFolder = "C:\Users\user\Desktop\test"
'出力シート
Set outputWs = Worksheets("sample")
'出力列
outputColumn = 2
'出力行
outputRow = 2
Set fso = CreateObject("Scripting.FileSystemObject")
'ファイル数分繰り返し
For Each file In fso.GetFolder(inputFolder).Files
'出力シートへファイル名を出力
outputWs.Cells(outputRow, outputColumn) = file.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_file_list_004.png)
参考①
ファイル数の取得もできます。
詳細は以下の記事をご確認ください。
参考②
フォルダ一覧の取得もできます。
詳細は以下の記事をご確認ください。
参考③
ファイル一覧を取得する前に、対象フォルダの存在有無を確認した方が良いかもです。
フォルダの存在有無の確認方法は、以下の記事をご確認ください。
参考④
自分でプログラムを書かずとも、Excelアドイン「RelaxTools」によりファイル一覧を取得できます。
※ファイル名以外も取得できます。
※サブフォルダ以下のファイルも取得できます。
![](https://excel-vba.work/wp-content/uploads/2022/09/vba_get_file_list_006.png)
詳細は公式サイトのマニュアルをご確認ください。
Excelアドイン「RelaxTools」に関する記事も作成しています。あわせてご確認ください。
参考⑤
上記のVBAコードは「FileSystemObject」や「Fileオブジェクト」を使用してファイル一覧を取得していますが、「Dir」関数を使用しても同様のことができます。
他のサイトには「Dir」関数を使用した方法がよく記載されています。
参考⑥
上記のコードで使用した以下の詳細は、公式サイトをご確認ください。
●「FileSystemObject」の「GetFolder」メソッド
●「Folderオブジェクト」の「Files」プロパティ
●「Filesコレクション」
●「Fileオブジェクト」の「Name」プロパティ