Situación: hicimos un libro Excel con macros automáticas que obligan al operador a hacer ciertas operaciones e impiden otras. El problema es que cualquiera puede abrir el archivo “sin macros” y luego hacer lo que quiera. ¿Cómo podemos hacer para que nadie pueda abrir el archivo sin macros?
Este es un problema que aparece de tanto en tanto. Una posible solución sería incluir en la macro alguna instrucción que sea imprescindible para operar la hoja. Por ejemplo, desproteger la hoja que, de otra manera, no se pueda usar:
Sub Auto_Open
ActiveSheet.Unprotec “trnpfzz”
…
aquí continúa la macro
…
End Sub
Esta macro se ejecuta automáticamente al abrir el archivo y es la que hace funcionar el sistema creado por el lector. Lo primero que hace la macro, antes de cualquier otra cosa, es desproteger la hoja actual, protegida con la contraseña “trnpfzz”. Suponemos que si no se procede a esta desprotección, el sistema es inutilizable. Como el operador no conoce la contraseña, no puede desproteger la hoja si no es a través de la macro.
En realidad, el operador tiene todavía una salida: ver el código de la macro y averiguar la contraseña. Entonces deberíamos proteger también el código:
1. Desde el editor de Visual Basic tomamos las opciones [Herramientas/Propiedades de VBAProject].
2. Seleccionamos la ficha [Protección] y marcamos la opción [Bloquear proyecto para visualización].
3. Escribimos y confirmamos una contraseña de protección, y hacemos clic en [Aceptar].
Para ver la protección en acción tenemos que guardar y cerrar el archivo, y luego volver a abrirlo. Esto no impide que se ejecuten las macros, pero sí que se pueda ver su código.