Hola,
No estoy seguro que lo que me propones resuelva mi problema. Como soy novato en este lenguaje de programación intentaré explicarme un poco más.
He elaborado con Libre Office Writer un documento con macros enlazadas a una barra de herramientas personalizada.
Este documento está dentro de una carpeta donde hay además algunos programas que llamo desde alguna de las macros. Si abro el documento, con el código siguiente puedo direccionar los comandos a la carpeta donde se encuentra el documento, que es donde se encuentran los otros programas que llamo desde las macros:
Código: Seleccionar todo
GlobalScope.BasicLibraries.LoadLibrary( "Tools" )
pathURL = ThisComponent.getURL()
pathFiche = ConvertFromUrl(pathURL)
onde = DirectoryNameoutofPath(pathFiche, GetPathSeparator())
Cuando tengo que llamar a algun programa de la carpeta indico la path donde lo encontrará = "onde"
Al convertir el documento .ODT en plantilla (.OTT) no funciona porque supongo que con el código anterior "onde" indica la carpeta por defecto donde se crean los documentos nuevos y no la carpeta donde está la plantilla que genera el documento (pongo un icono en la pantalla direccionado a la plantilla para que haciendo doble clic abra un documento nuevo basado en esa plantilla con su barra de herramientas y sus macros).
Me imagino que tendría que substituir
pathURL = ThisComponent.getURL()
Por otro código parecido a
pathURL = ThisComponent.Template.getURL()
No sé como hacer para poder saber en qué carpeta está la plantilla que ha creado ese documento nuevo y que las macros entonces funcionen.