2010-06-09 17 views
6

¿Hay alguna manera de determinar mediante programación si un .xls contiene macros, sin tener que abrirlo en Excel?determinar mediante programación Si un archivo de Excel (.xls) contiene macros

¿Hay algún método para examinar qué certificado (incluido el sello de fecha y hora) con el que se firman estas macros? De nuevo sin usar Excel.

Me pregunto en particular si hay cadenas que siempre aparecen en los datos brutos de un archivo de Excel cuando las macros están presentes.

+0

¿Es esta una xls o xlsx? –

+0

Esto sería para un archivo XLS –

Respuesta

1

Sí, puede abrir el archivo de .xls como archivo de documento compuesto y compruebe si contiene una carpeta VBA y secuencias que contienen código VBA.

código de muestra está disponible en este artículo CodeProject:

Another OLE Doc Viewer but with editing facility

La información del certificado se almacena en el corriente DocumentSummaryInformation. Si desea leer la información desde allí se debe profundizar en las especificaciones de formato de archivo de Microsoft disponibles:

[MS-OSHARED]: Office Common Data Types and Objects Structure Specification

[MS-OFFCRYPTO]: Office Document Cryptography Structure Specification

+0

Gracias, eso es incluso mejor de lo que esperaba, ¡no tenía idea de que los formatos de archivo estuvieran disponibles públicamente! –

0

un archivo XLS que contiene una macro debe contener una cadena buscando algo así como

Keyboard Shortcut: 

No sé si esto es una solución segura, aunque

+0

No, eso no funcionó para mí. –

Cuestiones relacionadas