Hola,
necesito código visual basic de Access que haga una llamada a Writer, abra un documento .odt y en un punto concreto insertar una imagen. El punto donde insertar la imagen podría estar marcado como {IMAGEN} (o algo parecido).
La función pasaría dos parámetros, la ruta de la plantilla y la ruta de la foto.
Adjunto un código de ejemplo (de Libre BASIC) que he encontrado en un foro para hacer algo parecido. Inserta varias imágenes.
Me interesa en especial la “traducción” a VBA de las definiciones de los objetos FRAME y DISPATCHER y cómo hacer las llamadas.
==========
[ Preformatted text
Sub BuscarImagen
SDescrip = ThisComponent.createSearchDescriptor()
SDescrip.SearchRegularExpression = TRUE
SDescrip.SearchString = “{IMAGEN}”
Frame = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(“com.sun.star.frame.DispatchHelper”)
rem ----------------------------------------------------------------------
dim args1(3) as new com.sun.star.beans.PropertyValue
args1(0).Name = “FileName”
'args1(0).Value = “”
args1(1).Name = “FilterName”
args1(1).Value = “”
args1(2).Name = “AsLink”
args1(2).Value = false
args1(3).Name = “Style”
args1(3).Value = “Imágenes”
oVC = ThisComponent.CurrentController.ViewCursor
Imagenes = ThisComponent.findAll(SDescrip)
Count = Imagenes.Count
for i = 0 to Count - 1
oTexto = Imagenes.getByIndex(i)
oVC.gotoRange(oTexto.Start, False)
NumCarac = Len(oTexto.String)
NombreImagen = Right(oTexto.String, NumCarac - 2)
oTexto.String = “”
args1(0).Value = convertToURL("/home/fjcc/Desktop/EJEMPLOS/IMAGENES/" & NombreImagen & “.PNG”)
dispatcher.executeDispatch(Frame, “.uno:InsertGraphic”, “”, 0, args1())
oVC.jumpToStartOfPage()
next i
End Sub
]