Visual Basic.NET - Ejemplo de código para detectar macros de Office

 
Vista:

Ejemplo de código para detectar macros de Office

Publicado por Medardo (17 intervenciones) el 02/04/2019 17:48:17
Hola
Llevo dos días buscando por la red y no he encontrado nada respecto a si existe algún código, o al menos una idea, que sirva para detectar documentos de Office que contengan macros, por ejemplo, macros en un libro de Excel o macro en un documento Word.
Si alguien pudiera ayudarme en eso, le agradecería mucho.
Gracias,
Medardo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Diego
Val: 605
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Ejemplo de código para detectar macros de Office

Publicado por Diego (190 intervenciones) el 03/04/2019 03:49:37
Hola Medardo, no quiero parecer naif con mi sugerencia, pero... Si observas la extensión del archivo? Creo que a partir de la version 2003 se utilizan archivos XLM(en lugar de XLS) y XLMX(en lugar de XLSX) para las versiones mas recientes.

Espero te sea utili mi comentario
Saludos y +Bytes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ejemplo de código para detectar macros de Office

Publicado por Medardo (17 intervenciones) el 03/04/2019 18:07:57
Gracias Diego
Efectivamente, desde Office 2007 se ha agregado una “x” a las extensiones para los documentos estándar, y para aquellos que contengan macros, esa “x” es sustituida por una “m”. Ejemplo:
Fichero.xlsx (fichero estándar de Excel) - Fichero.xlsm (fichero de Excel habilitado para macros)
Fichero.docx (fichero estándar de Word) - Fichero.docm (fichero de Word habilitado con macros)
Fichero.pptx (fichero estándar de PowerPoint) - Fichero.pptm (fichero de PowerPoint habilitado para macros)
Tenía esperanza de que existiera profesionalmente algún procedimiento para detectar código de programación en documentos de Office, pero he buscado tanto que parece no haberlo.
De todas formas, la idea de la extensión del fichero es una solución.
Gracias nuevamente, y por mí, doy cerrado el hilo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Diego
Val: 605
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Ejemplo de código para detectar macros de Office

Publicado por Diego (190 intervenciones) el 03/04/2019 18:44:37
Si tenés ganas de invertigar, y sobre todo tiempo para hacerlo. Podés renombrar un archivo xlsm o xlsx con la extension ZIP, tratarlo como un archivo comprimido y verás que dentro no son mas que archivos xml y de reglas de datos. De algún modo, ahi podrías tener acceso a la informacion de macros sin tener que utilizar ni siquiera el Excel.

Es a modo informativo, ya que está claro que es una solucion "económica" la de las extensiones.

Saludos y +Bytes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ejemplo de código para detectar macros de Office

Publicado por Medardo (17 intervenciones) el 03/04/2019 21:58:07
Cierto
Una vez que se le haya cambiado la extensión a .zip, al abrirlo encontramos un fichero llamado: [Content_Types].xml. Si en este fichero aparece la siguiente línea, entonces hay macro:

<Override PartName="/xl/vbaProject.bin" ContentType="application/vnd.ms-office.vbaProject" />

O, además, en la carpeta “xl” encontramos un fichero con nombre “vbaProject.bin”, también significa que el fichero contiene macro. Si eliminamos este fichero (vbaProject.bin), el código es eliminado sin necesidad de iniciar el archivo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar