El manejo de libros xlsm puede llegar a ser una tarea compleja, sobre todo cuando se quiere realizar acciones especificas como abrir únicamente una hoja en modo lectura. Sin embargo, Visual Basic ofrece una serie de herramientas que nos permiten ejecutar esta tarea de una manera más sencilla y eficaz.
Uno de los desafíos más recurrentes en la gestión de archivos xlsm es el control de apertura de hojas. Hay situaciones en las que se requiere abrir únicamente una hoja en modo lectura, evitando así cambios indeseados o errores que puedan afectar la integridad de la información almacenada.
Utilización de Visual Basic para la apertura en ‘MODO LECTURA’
El primer paso para abrir una sola hoja del libro xlsm en modo lectura con Visual Basic es establecer la referencia al objeto Workbook, que contiene todas las hojas de cálculo. Este objeto será el que vamos a utilizar para interactuar con Excel.
Dim xlApp As New Excel.Application Dim xlWorkBook As Excel.Workbook xlWorkBook = xlApp.Workbooks.Open ("nombre_del_archivo.xlsm")
Una vez establecida la referencia al objeto Workbook, el siguiente paso es definir la hoja que se desea abrir en modo lectura. Para ello, vamos a utilizar la propiedad Worksheets del objeto Workbook.
Dim xlWorkSheet As Excel.Worksheet xlWorkSheet = xlWorkBook.Worksheets("nombre_de_la_hoja")
Para que la hoja se abra en modo solo lectura, necesitamos cambiar las propiedades de la hoja. El objeto Worksheet posee una propiedad llamada Protect que nos permite proteger la hoja contra modificaciones no deseadas, es decir, abrir la hoja en modo lectura.
xlWorkSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Finalmente, para asegurar la apertura solo de la hoja seleccionada y no del resto del libro, necesitamos cerrar todos los demás libros abiertos.
For Each wb In xlApp.Workbooks If wb.Name <> xlWorkBook.Name Then wb.Close SaveChanges:=False End If Next wb
Consideraciones adicionales
El código anterior permite abrir una hoja específica en modo lectura, asegurándonos que ninguna otra hoja del libro se abra. Sin embargo, es importante tomar en cuenta que el modo lectura no bloquea completamente la hoja. Los usuarios todavía pueden realizar algunas acciones, como filtrar datos o copiar información.
Si se quiere restringir aún más las acciones permitidas en la hoja, se deben cambiar las opciones de la función Protect. Por ejemplo, para desactivar el filtro de datos, se puede utilizar el siguiente código:
xlWorkSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=False
El manejo de libros xlsm con Visual Basic nos facilita muchísimo el trabajo al permitirnos automatizar tareas que de otro modo requerirían de un gran esfuerzo y tiempo. La apertura de una hoja en modo lectura es solo uno de los muchos ejemplos de lo que se puede lograr con este potente lenguaje de programación.