Proteger macro en VBA

Iqra Hasnain 15 febrero 2024
  1. Proteger la macro para que no se vea en VBA
  2. Proteger la macro para que no se ejecute en VBA
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.

Agregar un botón de comando en la hoja de trabajo

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:

creando una macro para proteger en VBA

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.

proteger macro en VBA paso 1

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.

proteger macro en VBA paso 2

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.

cuadro de contraseña

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:

protección contra la ejecución en VBA

De esta manera, podemos proteger fácilmente nuestra macro para que no se vea y ejecute con la ayuda de VBA.