Proteger macro en VBA
Presentaremos cómo proteger la macro para que no se vea y ejecute en VBA. También presentaremos diferentes pasos para establecer una contraseña para nuestra macro.
Proteger la macro para que no se vea en VBA
Proteger nuestros datos es muy importante; nunca sabemos cómo alguien lo usará. Así como podemos proteger libros y hojas de trabajo simplemente poniéndoles una contraseña, también podemos proteger una macro en Excel para que no se vea.
Primero, agregaremos un botón de comando en la hoja de trabajo deseada.
Luego, crearemos una macro simple que queremos proteger de la visualización. Como se muestra a continuación, crearemos una macro simple que asignará un valor a una celda dentro de la hoja.
Private Sub CommandButton1_Click()
Range("D1").Value = "This is a protected cell"
End Sub
Producción:
Ahora seleccionaremos Herramientas
de la barra de menú en VBA. Aparecerá una lista, luego seleccione Propiedades de VBA Project
.
Cuando se abran las propiedades del proyecto VBA, veremos las pestañas General
y Protección
.
Debemos seleccionar la pestaña Protección
y marcar la casilla Bloquear proyecto para visualización
.
Tenemos que introducir la contraseña dos veces para confirmarla. Y luego, tenemos que seleccionar OK
, como se muestra a continuación.
Guarde los cambios y cierre el archivo de Excel, luego ábralo nuevamente. Aparecerá un cuadro de diálogo cuando intentemos ver el código en VBA.
Para ver un archivo en VBA, debemos ingresar la contraseña correcta.
Todavía podemos ejecutar el código haciendo clic en el botón de comando, pero ya no podemos ver ni editar el código a menos que ingresemos la contraseña correcta.
Proteger la macro para que no se ejecute en VBA
Hay situaciones en las que solo queremos proteger una macro para que no se ejecute en VBA. Podemos usar Application.InputBox
como herramienta de protección de contraseña para este caso.
Cuando un usuario ingresa la palabra correcta dentro del cuadro, ejecutará el código. De lo contrario, mostrará un mensaje incorrecto y detendrá la ejecución del código.
Veamos un ejemplo en el que intentaremos poner un valor a una determinada celda en Excel usando VBA. Como se muestra a continuación, utilizaremos el método anterior para evitar que se ejecute el código VBA.
Sub Pass()
Dim password As Variant
passcode = Application.InputBox("Enter Pass Code", "Password Protected")
Select Case passcode
Case Is = False
Case Is = "password"
Range("B1").Value = "Code executed!"
Case Else
MsgBox "Incorrect Pass Code"
End Select
End Sub
Producción:
De esta manera, podemos proteger fácilmente nuestra macro para que no se vea y ejecute con la ayuda de VBA.