Código VBA para proteger y desproteger libros de trabajo
En un fragmento de código VBA anterior, cubrimos la protección y desprotección de hojas de trabajo . En esta publicación, consideraremos proteger y desproteger libros de trabajo. Los dos temas están estrechamente relacionados, por lo que si esta publicación no proporciona la información que necesita, léala también .
Antes de comenzar, hay que considerar un cambio importante en Excel 2013.
La diferencia entre la interfaz de un solo documento y varios documentos
En Excel 2010 y versiones anteriores, Excel tenía una interfaz de documentos múltiples (MDI), lo que significa que se abrieron varios libros dentro de la misma ventana de Excel. Excel 2013 introdujo la interfaz de documento único (SDI), donde cada documento tiene su propia ventana con su propia cinta.
Al proteger libros, la opción de Windows está deshabilitada en Excel 2013 y versiones posteriores.
El propósito de la configuración de Windows era corregir el tamaño de la hoja de cálculo dentro de la instancia de Excel. Sin embargo, ahora que cada hoja de cálculo se comporta como si fuera una instancia separada, arreglar el tamaño de la ventana ya no sirve para nada.
El siguiente código funcionará tanto para MDI como para SDI; sin embargo, proteger la ventana del Libro de trabajo no tendrá utilidad en Excel 2013 y versiones posteriores.
Protección y desprotección básica
'Proteger un libro de trabajoThisWorkbook.Protect 'Desproteger un libro de trabajoThisWorkbook.Unprotect
Comprobar si un libro está protegido
'Mostrar cuadro de mensaje si la estructura está protegidaIf ThisWorkbook.ProtectStructure = True Then MsgBox "Estructura protegida"'Mostrar cuadro de mensaje si la ventana está protegidaIf ThisWorkbook.ProtectWindows = True Then MsgBox "Windows Protected"'Mostrar cuadro de mensaje si tanto la estructura como la ventana están protegidosSi ThisWorkbook.ProtectStructure = True O ThisWorkbook.ProtectWindows = True Entonces MsgBox "Windows y estructura protegidas"Finalizar si
Proteger y desproteger con contraseña
'Proteger con una contraseñaThisWorkbook.Protect Password:="myPassword"'Desproteger con una contraseñaThisWorkbook.Unprotect Password:="myPassword"
Si se proporciona una contraseña incorrecta, se mostrará el siguiente mensaje de error.
El siguiente código detectará el error y proporcionará un mensaje personalizado.
'Detecta el error causado por una contraseña incorrecta. En Error Reanudar NextThisWorkbook.Unprotect Contraseña:="contraseñaincorrecta"Si Err.Number 0 Entonces MsgBox "La Contraseña proporcionada es incorrecta" Salir SubEnd IfOn Error Ir a 0
Proteger la estructura o las ventanas
Proteger la estructura evita que los usuarios creen, muevan, eliminen, oculten y muestren hojas de trabajo. La protección de ventanas se describe arriba.
'Protección de la estructura o WindowsThisWorkbook.Protect Contraseña:="myPassword", Estructura:=True, Windows:=True
Otros fragmentos de código VBA relacionados
Los siguientes fragmentos de código VBA serán útiles para aplicar esta publicación en un contexto más amplio.
- Proteger y desproteger hojas de trabajo
- Recorra cada hoja de trabajo o cada libro de trabajo
- Propiedades y acciones del libro de trabajo
- Proteger con contraseña un archivo de Excel
Deja una respuesta