Что-то вроде:
Sub ProcessFilesInDirectory()
Dim folderPath As String
Dim fileName As String
Dim wb As Workbook
' Путь к директории
folderPath = "C:\temp\"
' Получаем первый файл с расширением .xlsx в директории
fileName = Dir(folderPath & "*.xlsx")
' Перебираем все файлы в директории
Do While fileName <> ""
' Открываем файл
Set wb = Workbooks.Open(folderPath & fileName)
' Вызываем функцию macros3
Call macros3()
' Сохраняем и закрываем файл
wb.Close SaveChanges:=True
' Получаем следующий файл
fileName = Dir
Loop
End Sub