Página 1 de 1
[Resuelto] macro: Ejecutar Macro en otro archivo
Publicado: Lun Nov 12, 2018 1:04 pm
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.
Re: macro: executar Macro en outro arquivo
Publicado: Lun Nov 12, 2018 1:55 pm
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.
Re: macro: executar Macro en outro arquivo
Publicado: Lun Nov 12, 2018 7:32 pm
por fornelasa
Solo para no dejar ¿cómo lo hacías en VBA, puedes comentarlo?
Saludos, Federico.
Re: macro: executar Macro en outro arquivo
Publicado: Lun Nov 12, 2018 10:07 pm
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.
Re: macro: executar Macro en outro arquivo
Publicado: Mar Nov 13, 2018 12:24 am
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?
Re: macro: Ejecutar Macro en otro archivo
Publicado: Mar Nov 13, 2018 11:10 am
por physic
felicitaciones ,
la macro funcionó perfectamente .
muchas gracias !