domingo, 3 de agosto de 2014

Quitar la contraseña a una Macros de Excel (Visual Basic Project)

Hace unos días me pidieron que le quite la contraseña a un Proyecto de Visual Basic en Excel (mas conocido en el mundo del hampa como Macros).
Ya hace un par de años lo había conseguido, pero me había olvidado como hacerlo, por lo que le pregunte a mi amigo Google, que nunca me ha fallado hasta el momento.

El proceso es muy sencillo, pero hay que tener claro que para archivos de Excel de la versión 2007 o 2010 no funciona, por lo que debemos guardarlo previamente como versión de Excel 97-2003, y asunto arreglado.

Una vez almacenado el archivo en esta versión, debemos descargar un programa que me permita editar el archivo de Excel, es decir, desde un editor hexadecimal. Pueden encontrar un editor en el siguiente enlace, se trata del HxD y es portable, quiere decir que no necesitas instalarlo.

Ejecutas el programa HxD y desde este programa abres el archivo de Excel en versión 97-2003 luego buscas el código DPB, como vemos en la siguiente imagen:

Encontremos una línea similar a esto:
000068e0h: 32 43 43 39 32 22 0D 0A 40 50 42 3D 22 44 45 44 ; 2CC92”..DPB=”DED
Como se resalta en la línea de código transcrita, casi al final de esta se encuentran las letras DPB. La letra B la cambiamos por una x de manera que quede DPx. Guardamos el archivo y listo.
Seguidamente abrimos el archivo de Excel y este nos mostrará un error similar a este:
Le decimos que sí y el archivo de Excel se abrirá.
Luego vamos a editor de Visual Basic (un truco es presionando ALT+F11)  que ya no tendrá contraseña pero tampoco se pueden ver los módulos en donde están las macros, por lo que debemos generar una nueva contraseña para nuestro proyecto. 
Para ello hacemos clic derecho en VBAProject y seleccionamos Propiedades de VBAProject
Luego vamos a la etiqueta Protección y le colocamos una nueva contraseña. Finalmente guardamos el archivo y lo cerramos.

Luego se abre nuevamente el archivo de Excel, vamos de nuevo al editor de visual basic e ingresamos la contraseña que asignamos en el paso anterior. Ahora las macros ya son visibles. En este paso se puede eliminar la contraseña si se quiere.
Espero que les sirva esta publicación.

Saludos
Ing. Enrique Neciosup Morales