VBAで
・指定したフォルダ配下の
・ファイル一覧を取得
できます!
VBAコード
ここでは例として、
・デスクトップにあるフォルダ「test」配下の
・ファイル一覧を取得してシート「sample」へ出力
します。
※シート「sample」へ出力後、シート「sample」の列幅を自動調整します。
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で
・指定したフォルダ配下の
・ファイル一覧を取得
できました。
参考①
ファイル数の取得もできます。
詳細は以下の記事をご確認ください。
参考②
フォルダ一覧の取得もできます。
詳細は以下の記事をご確認ください。
参考③
ファイル一覧を取得する前に、対象フォルダの存在有無を確認した方が良いかもです。
フォルダの存在有無の確認方法は、以下の記事をご確認ください。
参考④
自分でプログラムを書かずとも、Excelアドイン「RelaxTools」によりファイル一覧を取得できます。
※ファイル名以外も取得できます。
※サブフォルダ以下のファイルも取得できます。
詳細は公式サイトのマニュアルをご確認ください。
Excelアドイン「RelaxTools」に関する記事も作成しています。あわせてご確認ください。
参考⑤
上記のVBAコードは「FileSystemObject」や「Fileオブジェクト」を使用してファイル一覧を取得していますが、「Dir」関数を使用しても同様のことができます。
他のサイトには「Dir」関数を使用した方法がよく記載されています。
参考⑥
上記のコードで使用した以下の詳細は、公式サイトをご確認ください。
●「FileSystemObject」の「GetFolder」メソッド
●「Folderオブジェクト」の「Files」プロパティ
●「Filesコレクション」
●「Fileオブジェクト」の「Name」プロパティ