Abrir siempre un libro de trabajo que sea editable (Microsoft Excel)
Patrick se pregunta cómo evitar que Excel abra libros en la vista protegida. Quiere que el archivo se abra en la vista Normal de modo que cualquiera pueda abrirlo, leerlo y editarlo.
La respuesta depende completamente de lo que se entiende por «Vista protegida». Si quiere decir que desea que las hojas de trabajo estén desprotegidas, es relativamente fácil hacerlo a través de una macro. Si realmente está hablando de lo que Excel denomina «Vista protegida», entonces esa es una situación completamente diferente.
Si desea asegurarse de que el libro de trabajo esté desprotegido para poder editarlo una vez abierto, entonces una macro tan simple como esta puede funcionar:
Private Sub Workbook_Open() ThisWorkbook.Unprotect End Sub
Por supuesto, esto no desprotege las hojas de trabajo individuales. Eso implica algunos pasos más, ya que debe recorrer cada una de las hojas de trabajo en el libro de trabajo. Las siguientes macros deben colocarse en el módulo ThisWorkbook para el libro cuyas hojas desea desproteger:
Private Sub Workbook_BeforeClose(Cancel As Boolean) ' Reprotect sheets that were protected on open workbook Call ReprotectSheets ' Save changes in ThisWorkbook ThisWorkbook.Save End Sub
Private Sub Workbook_Open() ' Unprotect all sheets in this workbook Call UnprotectAllSheets End Sub
Tenga en cuenta que las macros hacen poco más que llamar a otras macros que hacen el trabajo real. Estas otras macros se pueden colocar en un módulo estándar en el libro de trabajo:
Public arrProtectedSheets() Sub ReprotectSheets() ' Reprotect worksheets that were protected on WorkbookOpen Dim i As Integer For i = LBound(arrProtectedSheets) To UBound(arrProtectedSheets) ThisWorkbook.Worksheets(arrProtectedSheets(i)).Protect Next i End Sub
Sub UnprotectAllSheets() ' Unprotect all worksheets in this workbook Dim wks As Object Dim i As Integer i = 0 For Each wks In ThisWorkbook.Sheets If IsSheetProtected(wks) Then ' Remember names of protected sheets in order ' to reprotect them on WorkbookClose ReDim Preserve arrProtectedSheets(i) arrProtectedSheets(i) = wks.Name i = i + 1 ' Unprotect sheet wks.Unprotect End If Next wks End Sub
Private Function IsSheetProtected(ByRef wks As Excel.Worksheet) As Boolean ' Function returns TRUE If Worksheetsheet Is Protected With wks IsSheetProtected = (.ProtectContents Or _ .ProtectScenarios Or .ProtectDrawingObjects) End With End Function
La idea detrás de la macro UnprotectAllSheets es que recorre cada una de las hojas de trabajo en el libro de trabajo y, si está protegida (determinado en la macro IsSheetProtected), el nombre de la hoja de trabajo se almacena en una matriz. El contenido de la matriz se utiliza en la macro ReprotectSheets para volver a proteger esas hojas de trabajo. Este enfoque asume, por supuesto, que no hay contraseña asociada con ninguna de las hojas de trabajo protegidas.
Si realmente quiere asegurarse de que la «Vista protegida» real
está apagado, esa es una historia diferente. La configuración de la Vista protegida se controla sistema por sistema en el Centro de confianza. Puede ver la configuración siguiendo estos pasos:
-
Muestre el
enlace: / excelribbon-Mostrando_Excels_Developer_Tab [pestaña Desarrollador]
de la cinta. -
Haga clic en Seguridad de macros en el grupo Código. Excel muestra el cuadro de diálogo Centro de confianza.
-
En el lado izquierdo del cuadro de diálogo, haga clic en Vista protegida. (Ver figura 1)
La configuración real de la Vista de protección disponible depende de la versión de Excel que esté utilizando. Como se mencionó, estas configuraciones se controlan a nivel del sistema; no se manejan libro por libro. El resultado es que no pueden eludirse mediante código macro. Si pudieran, el sistema volvería completamente vulnerable a cualquier código que se encuentre en un libro de trabajo que se esté abriendo; volveríamos a los días de los virus de macro que eran comunes en algunas versiones anteriores de los productos de Office.
Puede encontrar información adicional sobre cómo funciona la configuración de Vista protegida en este sitio web de Microsoft:
https://support.office.com/en-us/article/what-is-protected-view-d6f09ac7-e6b9-4495-8e43-2bbcdbcb6653?ocmsassetID=HA010355931&CorrelationId=fce5243e-6c41-4865-89e9-530f125ea252&ui=en-US&rs=en-US&ad=US
Si un libro se abre en Vista protegida o no, depende de la configuración del sistema del usuario. Esto significa que el control de lo que se abre depende completamente del usuario individual y no puede ser «forzado» por el autor del libro. Sin embargo, hay formas de mitigar el impacto de esto y tienen que ver con la confianza. Tenga en cuenta que a la izquierda del cuadro de diálogo Centro de confianza hay tres configuraciones que controlan esto en relación con los libros de trabajo:
Editores de confianza. * Los libros de trabajo de los editores que figuran en esta área son de confianza y se abrirán directamente, sin pasar por la Vista protegida.
Ubicaciones confiables. * Los libros de trabajo almacenados en las ubicaciones enumeradas en esta área son confiables y se abrirán directamente, sin pasar por la Vista protegida.
Documentos confiables. * Los libros de trabajo individuales indicados en esta área son confiables y se abrirán directamente, sin pasar por la Vista protegida.
Entonces, para que su libro de trabajo omita la Vista protegida, debe ser un editor confiable, el libro de trabajo debe almacenarse en una ubicación confiable o debe anotarse en el sistema como un documento confiable.
Todas estas configuraciones están, nuevamente, bajo el control del usuario y no se pueden modificar a través del código de macro.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (12873) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.