Aquest és un truc que obre un ampli ventall de possibilitats. Per a més info. mireu aquest fil del fòrum de l'OpenOffice.org.
Per a invocar una macro de l'openOffice.org, n'hi ha prou amb indicar el mètode de macro que vull executar amb una URL del tipus macro.
Per exemple, per obrir el wrapper del tesseract OCR del post anterior.
soffice macro:///tesseract.Module1.ObrirDialeg
Si la macro estigués en un document, caldria indicar el document
soffice document macro:///mètode
Es poden passar paràmetres a la macro:
Suposem el mètode Concatena al Module1 de la llibreria Standard,
Sub Concatena(sVar1 as String, sVar2 as String)
MsgBox sVar1 & " + " sVar2
end sub
Aleshores el podria invocar com:
soffice "macro:///Standard.Module1.Concatena(\"hola\",\"adeu\")"
El resultat és l'esperat:
Per evitar trobar-se amb un munt d'instàncies de l'OpenOffice.org obertes i consumint recursos, és una bona precaució que les macros que soguin invocades des de la línia d'ordres tanquin explícitament el document des del que és invocat, si cal, i també la instància de l'OpenOffice.org. Això es pot aconseguir amb aquest codi:
thisComponent.close(true) ' tanca el document
Stardesktop.terminate() ' tanca l'OOo
Cap comentari:
Publica un comentari a l'entrada