eccoti un esempio di come lo farei io (a<ggiungi l riferimento a Microsoft Scripting RunTime):

codice:
Sub Esegui()
    Dim FSO As Scripting.FileSystemObject, Fold As Scripting.Folder, strNamePadre As String
    Set FSO = New Scripting.FileSystemObject
    strNamePadre = "c:\"
    Set Fold = FSO.GetFolder(strNamePadre)
    Call GuardaFileSCartelle(Fold)
    Set Fold = Nothing
    Set FSO = Nothing
End Sub

Sub GuardaFileSCartelle(oFold As Scripting.Folder)
    Dim oSFold As Scripting.Folder, oFile As Scripting.File
    For Each oFile In oFold.Files
        If LCase(Right(oFile.Name, 3)) = "xls" Then Call EseguiExcel(oFile.Path)
    Next
    For Each oSFold In oFold.SubFolders
        Call GuardaFileSCartelle(oSFold)
    Next
End Sub

Sub EseguiExcel(strPathFile As String)
    Dim oWkb As Workbook
    Set oWkb = Application.Workbooks.Open(strPathFile)
    'fai quello che devi fare
    oWkb.Close
    Set oWkb = Nothing
End Sub