Como recuperar macros de um arquivo do Excel corrompido
Quem aqui nunca abriu aquele arquivo de Excel, que passou anos desenvolvendo, e se depara com o arquivo corrompido?

Este post foi originalmente publicado em https://officevbavsto.blogspot.com/2011/05/recuperar-codigo-vba-do-excel.html.
Quem aqui nunca abriu aquele arquivo de Excel, que passou anos desenvolvendo, e se depara com o arquivo corrompido? O código que irei postar foi encontrado em sites gringos.
Seguem os passos para recuperar o arquivo do Excel:
- Abra o Microsoft Word e crie uma nova macro;
- Copie o código abaixo em um módulo novo;
- Mude o nome do arquivo que deseja recuperar os módulos;
- Adicione a referência Microsoft Excel 9.0 Object (no meu caso 14.0 por causa do Office 2010): Ferramentas > Referências > e Marque Microsoft Excel 9.0 Object Library;
- Execute o código (com o cursor no módulo, pressione F5);
- Se você receber uma mensagem de erro do tipo Open File, clique em Depurar e, em seguida continuar;
- Quando o código for executado, procure na pasta RecoverPath;
- Se funcionou, cada um dos arquivos *.txt terá o nome do módulo original do seu projeto VBA do Excel.
A recuperação dos módulos depende do nível que seu arquivo esteja corrompido.
Sub Recover_Excel_VBA_modules()
Dim XL As Excel.Application
Dim XLVBE As Object
Dim i As Integer, j As Integer
Dim XLSFileName As String, RecoverPath as string
'mude para o nome do arquivo que estᠣorrompido, sem o xls mesmo
XLSFileName = "c:\windows\desktop\publication catalog"
RecoverPath="C:\temp\"
Set XL = New Excel.Application
XL.Workbooks.Open FileName:=XLSFileName + ".xls"
Set XLVBE = XL.VBE
j = XLVBE.VBProjects(1).VBComponents.Count
For i = 1 To j
Debug.Print XLVBE.VBProjects(1).VBComponents(i).Name
XLVBE.VBProjects(1).VBComponents(i).Export _
FileName:=recoverpath & _
XLVBE.VBProjects(1).VBComponents(i).Name & ".txt"
Next
XL.Quit
Set XL = Nothing
End Sub