sábado, 13 de julio de 2024

Procedimientos. Datos

Ocultar hojas mediante macro

Cuando nos interese por cualquier motivo que las hojas de un libro Calc no sean directamente accesibles podemos ocultarlas para después mostrarlas selectivamente. Para ello disponemos de las funcionalidades pertinentes desde el menú Datos (1).


También podemos ocultar una hoja mediante una macro que oculta la hoja activa (2). Es muy sencilla; te la muestro a continuación:

Sub OcultarHoja

dim document   as object
dim dispatcher as object

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

dispatcher.executeDispatch(document, ".uno:Hide", "", 0, Array())

End Sub

No explico las cuatro primeras líneas por ser sobradamente conocidas, así que la tarea se simplifica aun más: la función dispatcher.executeDispatch() lanza la orden ".uno:Hide" sobre el objeto asignado a la variable document. Dicha orden consiste en atribuir al objeto el atributo "Oculto" (Hide), lo que equivale al uso del submenú Hoja | Ocultar hoja. Proceso finalizado (3)

Documento. Este [libro Calc] contiene la macro explicada en la entrada.

NOTAS

(1) También podemos hacerlo desde el menú que se despliega cuando hacemos clic derecho sobre el nombre de la hoja en el navegador inferior de Calc.
(2) Y mediante Grabar macro es la única opción disponible, que yo sepa.
(3) Esta macro es tan simple que poco podemos hacer para instrumentalizarla. Podemos, eso sí, modificar la macro, convirtiendo en variables públicas las de objeto (document dispatcher), creando después un script de asignación de los objetos correspondientes a dichas variables (VarSis, en mi caso) y llamar a ese script desde el inicio de la macro OcultarHoja; pero no podemos convertir esta macro en una subrutina, aunque sí utilizarla como script auxiliar a emplear (llamar) desde otros que impliquen en su algoritmo la ocultación de la hoja activa.

No hay comentarios:

Publicar un comentario

Comenta esta entrada