ExcelVBAでサブディレクトリ配下を含めた、ファイルの一覧を取得する方法をご紹介したいと思います。
参照設定
今回は、FileSystemObjectを使用しますが、入力補助も有効化させるため、参照設定を行います。
まずは「Microsoft Visual Basic」エディタを開き、メニューのツールから「参照設定」画面を開きます。
次に「Microsoft Scripting Runtime」にチェックを入れて、「OK」ボタンをクリックします。
リンク
ソースコード
今回はシンプルに、フォルダパスとファイル名を取得するソースコードになります。
Option Explicit
Const FILE_PATH As String = "C:\workspace"
Const SHEET_NAME As String = "ファイル一覧"
Dim row As Long
Private Sub GetFileList()
row = 0
Sheets(SHEET_NAME).Clear
Call FncGetFileList(FILE_PATH)
End Sub
Private Function FncGetFileList(ByVal path As String)
Dim fso As FileSystemObject
Dim dir As Folder
Dim file As file
Set fso = CreateObject("Scripting.FileSystemObject")
For Each dir In fso.GetFolder(path).SubFolders
Call FncGetFileList(dir.path)
Next
For Each file In fso.GetFolder(path).Files
row = row + 1
Sheets(SHEET_NAME).Cells(row, 1) = file.ParentFolder
Sheets(SHEET_NAME).Cells(row, 2) = file.Name
Next
End Function
実行結果
実行した結果のイメージです。
以上で、ExcelVBA サブディレクトリを含めたファイルリストの取得を終了したいと思います。
リンク
コメント