Su pensión en Colpensiones. Calcule la que tendría hoy o planee la que quiere tener. Conózcalo aquí

Macros para proteger y desproteger hojas y libros de Excel

Excel permite proteger una hoja para que no se modifiquen sus celdas, y proteger la estructura del libro para que no se agreguen, eliminen o muevan hojas. Ambas protecciones se quitan desde la pestaña «Revisar», y con una macro pueden quitarse o ponerse en todas las hojas a la vez, siempre que se conozca la contraseña. ¿Cómo se escriben esas macros y qué diferencia hay entre cada tipo de protección?

Tipos de protección en Excel.

Hay tres niveles de protección, que se configuran en lugares distintos y protegen cosas distintas:

Protección Qué impide Dónde se activa
De la hoja Modificar las celdas bloqueadas, cambiar formatos, insertar filas, según las opciones elegidas. «Revisar», «Proteger hoja»
De la estructura del libro Insertar, eliminar, mover, ocultar, mostrar o cambiar el nombre de las hojas. «Revisar», «Proteger libro»
Contraseña de apertura Abrir el archivo sin la contraseña. El archivo se cifra. «Archivo», «Información», «Proteger libro», «Cifrar con contraseña»

Las dos primeras están pensadas para evitar cambios por error, no para proteger información confidencial: no impiden ver las celdas visibles ni copiarlas. Solo la contraseña de apertura cifra el archivo, y si se pierde, no hay forma práctica de recuperarlo.

Desproteger una hoja o el libro sin macros.

Para quitar la protección de una hoja se va a «Revisar», «Desproteger hoja», y se escribe la contraseña si la tiene. Para quitar la protección de la estructura, «Revisar», «Proteger libro», que funciona como un interruptor, y se escribe la contraseña.

Mientras la estructura del libro está protegida, la opción para mostrar hojas ocultas aparece desactivada, como se explica en el artículo sobre cómo mostrar hojas ocultas en Excel.

Macro para desproteger una hoja.

Las macros se escriben en el editor de Visual Basic, que se abre con Alt + F11; allí se elige «Insertar», «Módulo» y se pega el código. Para desproteger la hoja activa con su contraseña:

Sub DesprotegerHojaActiva()

ActiveSheet.Unprotect Password:="clave"

End Sub

Se reemplaza «clave» por la contraseña real. Si la hoja no tiene contraseña, basta con ActiveSheet.Unprotect. Si la contraseña es incorrecta, la macro se detiene con un error.

Macro para desproteger todas las hojas del libro.

Cuando un libro tiene muchas hojas protegidas con la misma contraseña, una macro las recorre todas:

Sub DesprotegerTodasLasHojas()

Dim hoja As Worksheet

For Each hoja In ThisWorkbook.Worksheets

hoja.Unprotect Password:="clave"

Next hoja

End Sub

Y la macro inversa, para volver a protegerlas todas:

Sub ProtegerTodasLasHojas()

Dim hoja As Worksheet

For Each hoja In ThisWorkbook.Worksheets

hoja.Protect Password:="clave"

Next hoja

End Sub

La versión del archivo descargable pide la contraseña al ejecutar la macro, en lugar de dejarla escrita en el código, y avisa qué hojas no pudieron desprotegerse si alguna tiene una contraseña distinta.

Macro para desproteger la estructura del libro.

La protección de la estructura se quita con el método Unprotect del libro:

Sub DesprotegerLibro()

ThisWorkbook.Unprotect Password:="clave"

End Sub

ThisWorkbook es el libro que contiene la macro. Para proteger de nuevo la estructura: ThisWorkbook.Protect Password:="clave", Structure:=True.

Proteger la hoja y permitir que las macros la modifiquen.

Un uso frecuente es mantener las hojas protegidas para el usuario pero permitir que las macros escriban en ellas. Para eso se protege con el argumento UserInterfaceOnly:

hoja.Protect Password:="clave", UserInterfaceOnly:=True

Esta opción no se guarda con el archivo, de modo que conviene ejecutarla al abrir el libro, desde el evento Workbook_Open.

Si se olvidó la contraseña.

Las macros de este artículo funcionan cuando se conoce la contraseña. Si se olvidó, las opciones legítimas son pedirla a quien protegió el archivo, recuperar una versión anterior sin protección, desde las copias de seguridad o el historial de versiones de OneDrive o SharePoint, o reconstruir la hoja a partir de los datos visibles, que la protección no impide copiar.

De acuerdo con nuestro criterio, para información que realmente debe resguardarse no basta con proteger las hojas: hay que usar la contraseña de apertura y controlar quién tiene acceso al archivo.

Descargar los ejemplos.

El libro de práctica tiene tres hojas y la estructura protegidas con la contraseña «gerencie». Descargar archivo.

Macros de ejemplo.

Private Const CLAVE As String = ""

Private Function PedirClave() As String

If CLAVE <> "" Then

PedirClave = CLAVE

Else

PedirClave = InputBox("Escriba la contraseña (déjela vacía si no tiene):", "Contraseña")

End If

End Function

Sub DesprotegerHojaActiva()

On Error GoTo Fallo

ActiveSheet.Unprotect Password:=PedirClave()

MsgBox "La hoja " & ActiveSheet.Name & " quedó desprotegida."

Exit Sub

Fallo:

MsgBox "No fue posible desproteger la hoja: la contraseña no es correcta."

End Sub

Sub DesprotegerTodasLasHojas()

Dim hoja As Worksheet, clave As String, fallidas As String

clave = PedirClave()

For Each hoja In ThisWorkbook.Worksheets

On Error Resume Next

hoja.Unprotect Password:=clave

If hoja.ProtectContents Then fallidas = fallidas & vbCrLf & hoja.Name

On Error GoTo 0

Next hoja

If fallidas = "" Then

MsgBox "Todas las hojas quedaron desprotegidas."

Else

MsgBox "No se pudieron desproteger estas hojas (contraseña distinta):" & fallidas

End If

End Sub

Sub ProtegerTodasLasHojas()

Dim hoja As Worksheet, clave As String

clave = PedirClave()

For Each hoja In ThisWorkbook.Worksheets

hoja.Protect Password:=clave

Next hoja

MsgBox "Todas las hojas quedaron protegidas."

End Sub

 

Sub DesprotegerLibro()

On Error GoTo Fallo

ThisWorkbook.Unprotect Password:=PedirClave()

MsgBox "La estructura del libro quedó desprotegida."

Exit Sub

Fallo:

MsgBox "No fue posible desproteger el libro: la contraseña no es correcta."

End Sub

Sub ProtegerLibro()

ThisWorkbook.Protect Password:=PedirClave(), Structure:=True

MsgBox "La estructura del libro quedó protegida."

End Sub

Preguntas frecuentes.

A continuación respondemos las preguntas frecuentes de nuestros lectores.

¿Cuál es la macro para desproteger una hoja de Excel con contraseña?

ActiveSheet.Unprotect Password:="clave", reemplazando «clave» por la contraseña de la hoja.

¿Cómo desprotejo todas las hojas de un libro a la vez?

Con una macro que recorra las hojas con For Each y aplique Unprotect a cada una, como la de este artículo.

¿Qué diferencia hay entre proteger la hoja y proteger el libro?

Proteger la hoja impide modificar sus celdas; proteger el libro impide agregar, eliminar o mover hojas. La contraseña de apertura, en cambio, impide abrir el archivo.

¿La protección de hoja sirve para guardar información confidencial?

No. Evita cambios por error, pero no impide ver ni copiar las celdas visibles. Para eso se usa la contraseña de apertura.

¿Por qué la macro de desproteger no funciona?

Porque la contraseña es distinta, porque la protección es del libro y no de la hoja, o al revés, o porque las macros están deshabilitadas.

¿Aún no tienes cuenta en Gerencie.com?
El registro es completamente gratis y desbloquea beneficios exclusivos.

Forma de citar este artículo (APA):

Invitado. (2026, octubre 20). Macros para proteger y desproteger hojas y libros de Excel [Entrada de blog]. Recuperado de https://www.gerencie.com/macro-para-desproteger-el-libro.html

Deje su opinión o su pregunta. Trataremos de darle respuesta. Su comentario o pregunta será editada automáticamente por el sistema.

Regístrese para que le avisemos cuando respondan su pregunta.