サブフォルダーのファイルを取得するVBA

f:id:bimori466:20210313010901p:plain

サブフォルダーのファイルまで取得するVBA

仕事が超絶楽になるはずだよ!

1 作成の経緯

ドキュメントの一括作成を迫られたのでw

2 コードを記載

以下のようにファイルA、B、C、Dのフォルダがあります。
f:id:bimori466:20210313004402p:plain


以下のようにフォルダの中にエクセルファイルが入っています。
f:id:bimori466:20210313004712p:plain

サブフォルダーを取得する実際のコード

Sub サブフォルダのファイルまで取得する()

    Dim fso As Object: Set fso = CreateObject("scripting.filesystemobject")
    
    Dim varTmp As Variant
    Dim myFolser As String
    
    
    Dim targetPath As String
    Dim targetSubPath As String
    
    Dim files As Variant
    Dim file As Variant
    Dim myFile As Variant
    
    targetPath = ThisWorkbook.Path
    
    For Each varTmp In fso.GetFolder(targetPath).SubFolders
    
        'Debug.Print varTmp.Name
            
        targetSubPath = targetPath & "\" & varTmp.Name
        
        Set files = fso.GetFolder(targetSubPath)
        Set file = files.files
        
        For Each myFile In file
            Debug.Print myFile.Name
        Next
    Next
    
    Set fso = Nothing

End Sub

処理結果

f:id:bimori466:20210313005822p:plain

3 感想

fsoを作って、サブフォルダを取得してイミディエイトウィンドウに出力しているだけです。
For Each myFile In fileの処理の中で、すべてのサブフォルダのファイルを処理できます!
いつでも、どこかで使えそう!


備忘録でした~。(^^)/~~~