Dim fso, folder, ruta, result, path path = "." Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder(path) ruta = folder.path result = MsgBox("A continuación se va a proceder a eliminar los atributos de todos los archivos de la siguiente carpeta y todas sus subcarpetas:" & vbNewLine & vbNewLine & ruta & vbNewLine & vbNewLine & "¿Desea proceder?", vbOKCancel + vbQuestion, "Restaurar archivos ocultos") If result = 1 Then ModifyAttributes(path) result = MsgBox("Finalizado con éxito", vbOKOnly + vbInformation) Else result = MsgBox("No se ha producido ningún cambio", vbOKOnly + vbExclamation) End If Function ModifyAttributes(path) Dim fso, folder, subFlds, subFiles, fld, file Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder(path) Set subFiles = folder.Files For Each file in subFiles file.attributes = 0 Next Set subFlds = folder.SubFolders For Each fld in subFlds fld.attributes = 0 ModifyAttributes(fld) Next End Function