[RESUELTO] Ocultar ejecución de macros.

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

[RESUELTO] Ocultar ejecución de macros.

Mensaje por Chelo2 »

Quería saber si existe para Open Office alguna instrucción para ocultar la ejecución de las macros. Cuando trabajaba con Excel usaba una instrucción que era Application.ScreenUpdating = True o False que era para mostrar u ocultar.

El tema de que a través de codigo valido una clave de acceso que consulto en otro libros y cuando el mismo se abre se visualiza. Quisiera ver si se puede ocultar ese proceso.

Muchas gracias y un saludo desde Buenos Aires, Argentina .

Chelo2
Última edición por Chelo2 el Mar Oct 01, 2013 5:31 pm, editado 1 vez en total.
OpenOffice 4.1.3 en Windows 7
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Ocultar ejecución de macros.

Mensaje por mauricio »

ScreenUpdating no era para ocultar la ejecución si no para refrescar o no la pantalla, cosa distinta a ocultar la ejecución de una macro...

Para consultar el libro de forma oculta, pues eso, solo abrelo de forma oculta, lo cual puedes consultar en mi libro: http://forum.openoffice.org/es/forum/vi ... =50&t=1545 y en el wiki: http://wiki.openoffice.org/wiki/ES/Manu ... documentos

y solo lo abres de forma oculta:

Código: Seleccionar todo

     mOpciones(0).Name = "Hidden"
     mOpciones(0).Value = True
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: Ocultar ejecución de macros.

Mensaje por Chelo2 »

Mauricio:

Ante todo gracias por tu ayuda. El código que me indicaste funciona perfectamente, pero cuando utilizo sólo esa opción. Si utilizo una segunda opción, la de password para abrir el libro, ya hí no anda.

Quizá esté haciendo algo mal, pero no me doy cuenta. Por eso pego el código por si se puede observar algún error.

Public Sub Abre_Libro
Dim sRuta As String
Dim mOpciones(1) As New "com.sun.star.beans.PropertyValue"
Dim oDoc As Object
'Dim oLFinal As Variant
Dim UltFila As Long
Dim oSel As Object
Dim oHojaBase As Object
Dim oBuscarEn As Object
Dim oEncontrado As Object
Dim oSD As Object

dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

' ABRE EL LIBRO DE DESTINO
mOpciones(0).Name = "Hidden"
mOpciones(0).Value = True
mOpciones(1).Name = "Password"
mOpciones(1).Value = "02081938"

sRuta = ConvertToUrl( "/D:/Pruebas OpenOffice/"+Libro+".ods") 'EN LA OFICINA
oDoc = StarDesktop.loadComponentFromURL( sRuta, "_blank", 0, mOpciones() )

.... sigue


Al abrir el libro protegido con password para buscar el usuario, tomar la clave, cerrarlo, etc. etc., todo ese proceso, aunque sea corto, se visualiza en la pantalla del usuario y es lo quiero ocultar o que se desarrolle en un segundo plano.

Gracias por tu colaboración. Un saludo.

Chelo2
OpenOffice 4.1.3 en Windows 7
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Ocultar ejecución de macros.

Mensaje por fornelasa »

Una posible opción al Application.ScreenUpdating pudiera ser´por ejemplo este codigo:
En un libro nuevo introduce este codigo y mira por favor como se seleccionan varias celdas y se introducen varios valores en algunas celdas y todo ese proceso no se ve en la pantalla, según yo.

Código: Seleccionar todo

Sub ScreenUpdating
oDoc = ThisComponent.CurrentController
oSheet = oDoc.ActiveSheet
oDoc.getFrame.getContainerWindow.Visible = FALSE
oDoc.select(oSheet.getcellrangebyname("A15"))
oDoc.select(oSheet.getcellrangebyname("A16"))
oDoc.select(oSheet.getcellrangebyname("A17"))
oDoc.select(oSheet.getcellrangebyname("A18"))
oDoc.select(oSheet.getcellrangebyname("A19"))
oDoc.select(oSheet.getcellrangebyname("A20"))
oDoc.select(oSheet.getcellrangebyname("A21"))
oDoc.select(oSheet.getcellrangebyname("A22"))
oDoc.select(oSheet.getcellrangebyname("A23"))
oDoc.select(oSheet.getcellrangebyname("A24"))
oDoc.select(oSheet.getcellrangebyname("A25"))
oDoc.select(oSheet.getcellrangebyname("A26"))
ThisComponent.sheets(0).getcellrangebyname("A1").Value = 10
ThisComponent.sheets(0).getcellrangebyname("A2").Value = 20
ThisComponent.sheets(0).getcellrangebyname("A3").Value = 30
ThisComponent.sheets(0).getcellrangebyname("A4").Value = 40
ThisComponent.sheets(0).getcellrangebyname("A5").Value = 50
ThisComponent.sheets(0).getcellrangebyname("A6").Value = 60
ThisComponent.sheets(0).getcellrangebyname("A7").Value = 70
ThisComponent.sheets(0).getcellrangebyname("A8").Value = 80
ThisComponent.sheets(0).getcellrangebyname("A9").Value = 90
oDoc.getFrame.getContainerWindow.Visible = TRUE
End Sub
Otras posibles alternativas:

Código: Seleccionar todo

Sub DesactivarPantalla
oDoc = ThisComponent
oDoc.addActionLock   
oDoc.sheets(0).getcellrangebyname("A1").Value = 10
oDoc.sheets(0).getcellrangebyname("A2").Value = 20
oDoc.sheets(0).getcellrangebyname("A3").Value = 30
oDoc.sheets(0).getcellrangebyname("A4").Value = 40
oDoc.sheets(0).getcellrangebyname("A5").Value = 50
oDoc.sheets(0).getcellrangebyname("A6").Value = 60
oDoc.sheets(0).getcellrangebyname("A7").Value = 70
oDoc.sheets(0).getcellrangebyname("A8").Value = 80
oDoc.sheets(0).getcellrangebyname("A9").Value = 90
End Sub

Código: Seleccionar todo

Sub ActivarPantalla
oDoc = ThisComponent
oDoc.resetActionLocks()
End Sub
Tal vez algo así funcione.
Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Chelo2
Mensajes: 103
Registrado: Mié Ago 14, 2013 4:25 am
Ubicación: Lomas de Zamora, Buenos Aires, Argentina

Re: Ocultar ejecución de macros.

Mensaje por Chelo2 »

Perfectoooo... La segunda opción me funcionó de maravillas.

Muchas gracias Federico y gracias a todos por su ayuda.

Un saludo desde Buenos Aires Argentina.

Chelo2
OpenOffice 4.1.3 en Windows 7
pedrozaframolina
Mensajes: 1
Registrado: Vie Oct 11, 2019 12:10 pm

Re: [RESUELTO] Ocultar ejecución de macros.

Mensaje por pedrozaframolina »

Muchas gracias Mauricio por la solución que das al problema del parpadeo en la ejecución de macros. Funciona perfectamente.
OpenOffice 6.3. en windows 10
Responder