[Resuelto] macro: Ejecutar Macro en otro archivo

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
physic
Mensajes: 85
Registrado: Lun Oct 29, 2018 12:55 am

[Resuelto] macro: Ejecutar Macro en otro archivo

Mensaje por physic »

Estoy buscando una macro para mi Archivo A que ejecute lo siguiente en LibreOffice:

        es necesario pulsar el botón del archivo A para ejecutar una macro ubicada en el otro archivo B.

        tenga en cuenta:

        1) Ya estoy con el archivo B abierto.

        2) nombre de macro en el archivo B es:
   
           macro: Borrar_todo

           biblioteca: VBAProject

           módulo: Módulo1


     Gracias.
Última edición por physic el Mar Nov 13, 2018 11:11 am, editado 1 vez en total.
LibreOffice 5.4.4.2 >>> Windows 7
physic
Mensajes: 85
Registrado: Lun Oct 29, 2018 12:55 am

Re: macro: executar Macro en outro arquivo

Mensaje por physic »

yo trabajaba anteriormente con archivos Excel, donde tenía varias macros en la biblioteca VBAProject del archivo Excel.

            hice la conversión de Archivo.xls a Archivo.ods, y la biblioteca VBAProject se mantuvo con el mismo nombre en el nuevo archivo .ods.

            es decir, el nuevo archivo convertido a .ODS, contiene la biblioteca STANDARD y también la biblioteca VBAProject.

            Usted puede ayudarme a crear el comando para ejecutar la macro en el archivo B, utilizando el nombre de esa biblioteca VBAProject.

            entonces haré las pruebas aquí para comprobar lo que va a suceder.


muchas gracias.
LibreOffice 5.4.4.2 >>> 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: macro: executar Macro en outro arquivo

Mensaje por fornelasa »

Solo para no dejar ¿cómo lo hacías en VBA, puedes comentarlo?
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!
physic
Mensajes: 85
Registrado: Lun Oct 29, 2018 12:55 am

Re: macro: executar Macro en outro arquivo

Mensaje por physic »

Se ejecuta así en VBA de Excel: Application.Run "Book1.xls! MyMacroName"

ver el ejemplo: https://www.rondebruin.nl/win/s9/win001.htm


abrazos.
LibreOffice 5.4.4.2 >>> 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: macro: executar Macro en outro arquivo

Mensaje por fornelasa »

hice la conversión de Archivo.xls a Archivo.ods, y la biblioteca VBAProject se mantuvo con el mismo nombre en el nuevo archivo .ods.
Entiendo que el archivo tiene extensión .ods
contiene la biblioteca STANDARD y también la biblioteca VBAProject
Módulo1
el nombre del modulo debe ser exacto
Ya estoy con el archivo B abierto
el archivo A y el B están abiertos

Una guía de como hacerlo:

Código: Seleccionar todo

Sub RunMacroDeOtroArchivo()
    GlobalScope.BasicLibraries.LoadLibrary("Tools")
    nombre = "B.ods"    
     oDocs = StarDesktop.getComponents().createEnumeration()
    Do While oDocs.hasMoreElements()
      oDoc = oDocs.nextElement()
         If HasUnoInterfaces(oDoc, "com.sun.star.frame.XModel") Then
         If oDoc.hasLocation() Then
         If oDoc.Title = nombre Then
    StarDesktop.setActiveFrame(oDoc.CurrentController.Frame)
    oDoc.CurrentController.Frame.ContainerWindow.toFront() 
    oDoc.BasicLibraries.loadLibrary("Standard")
    Set scriptProvider = oDoc.getScriptProvider()
        proveedor = scriptProvider.getScript("vnd.sun.star.script:VBAProject.Módulo1.NombreDeTuMacro?language=Basic&location=document")
    proveedor.invoke(array(), array(), array())
		 End if
		 End If
		 End If
Loop
End Sub
No quites el signo de interrogación en NombreDeTuMacro?
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!
physic
Mensajes: 85
Registrado: Lun Oct 29, 2018 12:55 am

Re: macro: Ejecutar Macro en otro archivo

Mensaje por physic »

felicitaciones ,

             la macro funcionó perfectamente .


muchas gracias !
LibreOffice 5.4.4.2 >>> Windows 7
Responder