Si bien las respuestas de Mokubai y hBy2Py parecen excelentes y, de hecho, le permiten mostrar el Editor de VBA, parece que al menos en Excel de Microsoft Office Professional Plus 2016 aún no le permite ver el código.
Es cierto que tengo esa versión, y estaba seguro de que recibí un XLS malicioso y quería inspeccionarlo. Después de abrirlo en Excel, se abrió en modo seguro como de costumbre y, por supuesto, no tenía intención de descartar ese modo. Cuando abrí el Editor VBA como indicaron otros encuestados, me presentaron ... Editor VBA vacío . El panel "Explorador de proyectos" muestra útilmente "No hay proyectos abiertos" a pesar de que todavía no he cerrado el archivo XLS. Solo por probar, abrí el segundo documento (uno de mis trabajos) e inmediatamente apareció en VBA Editor y estaba (correctamente) totalmente desprovisto de cualquier VBA. Sin embargo, el documento de Internet no figuraba en el Editor de VBA .
Perdí algo de tiempo tratando de entender por qué es así, y no encontré ninguna razón. Parece que mi edición de Excel simplemente no envía módulos VBA al Editor VBA cuando el documento se carga en modo seguro. Lamentablemente, el Editor de VBA carece de alguna función de "VBA abierto desde Office Document", por lo que está claro que Excel es el cerebro aquí y tiene que descomprimir / decodificar / lo que sea el XLS primero.
La solución resultó ser bastante simple.
- Haga clic en
Ribbon
-> Developer
->MacroSecurity
- alternativamente,
File
-> Options
-> SecurityCenter
(último grupo de opciones) -> Settings
-> Macros
)
- Recuerde (o escriba) cuáles son las configuraciones actuales
- Cámbielos a "Bloquear todas las macros sin notificación"
- Confirme, cierre, vuelva a abrir el documento, vuelva a abrir VBA Editor
- Restaura la configuración original mientras terminas de jugar con fuego
Efectos:
- la notificación no apareció
- documento ha sido cargado completamente
- no se ejecutaron macros
- VBA Editor obtuvo los módulos y presentó todo el código
En caso de que tenga curiosidad: sí, de hecho fue malicioso, pequeño ejemplo:
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
Por cierto. como puede ver, inmediatamente comenté el punto de entrada y volví a guardar el documento, en caso de que permita que las macros se ejecuten en algún momento posterior.
Alt
+F11
puede hacer que el "! SECURITY WARNING ... Enable Content
" banner desaparezca, lo que implica que la ejecución del código ahora está habilitada. Esto es engañoso. Puede hacer una demostración de esto creando un documento con unon_open()
módulo. Podrá hacerAlt
+F11
in e inspeccionar el código sin disparar el evento.