Ecco un esempio di funzione ricorsiva che puoi adattare al tuo scopo:
codice:
Private Sub Command1_Click()
    Dim fso As New FileSystemObject
    Dim f As Folder
    
    Set f = fso.GetFolder("c:\")
    
    Call ScanDir(f)
    
End Sub

Public Sub ScanDir(fol As Folder)
    Dim fl As Folder
    Dim fi As File
    
    For Each fi In fol.Files
        Debug.Print fi.path
    Next
    
    For Each fl In fol.SubFolders
        Call ScanDir(fl)
    Next
End Sub
RIcordati di aggiungere ai riferimenti la libreria "Microsoft Scripting Runtime". Ciao