Cambiar las propiedades de un archivo Excel desde VBA

Hoy aprenderemos a modificar / Cambiar las propiedades de un archivo Excel desde VBA, para ello usaremos a la expresión BuiltinDocumentProperties

La necesidad surge por querer modificar los valores por defecto que Excel asigna a los documentos, enumero algunos motivos:

  • Ocultar información personal
  • Borrar información de autores
  • Modificar fechas de creación o modificación
  • Alterar identidad de documentos
  • Entre otros

Muy bien, primero utilizaremos la expresión BuiltinDocumentProperties para listar las propiedades de un libro de trabajo, el cual debe encontrarse abierto

Listar todas las propiedades de un documento Excel

Lo primero que aprenderemos será a listar todas las propiedades a las que podemos tener acceso con la expresión BuiltinDocumentProperties

Usaremos un archivo de prueba y un bucle FOR EACH para poder obtener el listado de propiedades, este código será de utilidad

El cual nos devolverá el siguiente listado

Propiedades de un archivo Excel VBA

Por lo tanto tenemos acceso a 34 propiedades de un documento Excel

Ahora que tenemos el nombre de las propiedades a las que tendremos acceso, usaremos la expresión DocumentProperties, por lo que el código quedaría de la siguiente forma:

Hemos agregado la instrucción On Error Resume Next, por si alguna propiedad tiene el valor nulo

Cambiar las propiedades de un archivo Excel

Cambiar las propiedades de un archivo Excel

Después de haber listado las propiedades de un documento Excel, procederemos a cambiar las más frecuentes

Modificar las propiedades desde VBA con la expresión BuiltinDocumentProperties podría ser un idea que alguno de nosotros pensaría… pero no es tan fácil, un código plausible podríamos pensar que es:

Pero nuestro amigo Excel NO nos permite modificar la fecha de creación (El autor sí), y las propiedades de modificación se sobreescriben después de ejecutar la expresión .CLOSE TRUE

Entonces nos hacemos la pregunta ¿Se puede modificar las propiedades de un documento Excel?

La respuesta es afirmativa, y lo haremos en 5 pasos, los cuales son:

Paso #1: Visualizar las extensiones de archivo

Nos dirigimos a inicio (En el explorador de Windows) y luego seleccionamos Extensiones de nombre de archivo

Extensiones de archivo

Paso #2: Cambiar el nombre de la extensión

Muy bien, una vez que podemos visualizar la extensión del documento, procedemos a dar click sobre Cambiar el nombre

Cambiar el nombre de un archivo

Y cambiar la extensión XLSM (U otra) a ZIP

Cambiar extensión de un archivo vba

Paso #3: Descomprimir el contenido

Tan sencillo como dar click derecho y extraer aquí al archivo modificado

Extraer contenido de ZIP

Paso #4: Modificar el archivo core.xml

Las propiedades que deseamos modificar las encontraremos en la ruta: docProps>core.xml

Debemos abrir el archivo con el bloc de notas

modificar el archivo core.xml

Y obtendremos un archivo similar al siguiente

Propiedades de documento excel VBA

Te recomiendo modificar las propiedades sombreadas

Modificar propiedades de documento

Las modificaré a algunas de prueba y guardaré el documento

Alterar propiedades documento

Paso #5: Comprimir a ZIP

Después de realizar el cambio al archivo core.xml, debemos comprimir todo nuevamente

comprimir a zip excel

Paso #6: Cambiar de ZIP a XLSM

Similar al paso #2, debemos cambiar la extensión nuevamente

de zip a xlsm

Y hemos terminado, ahora podemos visualizar que las propiedades han sido cambiadas

He colocado para este ejemplo una fecha del próximo año y he podido alterar el documento de manera exitosa

Y eso ha sido todo, cualquier duda o consulta me la puedes realizar en los comentarios, o al correo Luisrojas@tutorialesexcel.com

Si te interesa desbloquear archivos VBA usando una lógica similar a la descrita, te invito a leer la siguiente publicación: tutorialesexcel.com/blog/desbloquear-contrasena-de-proyecto-vba-de-excel/

Luis Rojas

Te invito a que te suscribas a mi canal de Youtube, y pronto mi curso de Excel VBA desde cero estará disponible

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *