De vez en cuando recibo un archivo xls que contiene una macro que debo usar. Si no tengo plena confianza en el remitente, deseo mirar la fuente de la macro para verificar que realmente solo hace lo que se supone que debe hacer.
Sin embargo, en Excel 2010, el botón "editar" debajo de "ver macros" está deshabilitado a menos que primero habilite las macros para la hoja, pero si primero habilito las macros, puedo, a lo sumo, averiguar sobre códigos maliciosos solo después de que ese código haya terminado corriendo...
¿Cómo puedo ver el origen de la macro antes de habilitar macros para el documento?
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.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.
Ribbon
->Developer
->MacroSecurity
File
->Options
->SecurityCenter
(último grupo de opciones) ->Settings
->Macros
)Efectos:
En caso de que tenga curiosidad: sí, de hecho fue malicioso, pequeño ejemplo:
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.
fuente