【ExcelVBA】サブディレクトリを含めたファイルリストの取得


この記事はプロモーションを含みます。

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 サブディレクトリを含めたファイルリストの取得を終了したいと思います。

コメント

タイトルとURLをコピーしました