Error al ejecutar macro

He estado usando esta macro para borrar imágenes que hasta ahora me funcionaba, por diversas razones he tenido que desinstalar e instalar LibreOffice y ahora ha dejado de funcionar, la macro en cuestión es:

oDoc = ThisComponent.DrawPage
For oImagen = oDoc.Count-1 to 0 step -1
ODibujo = oDoc.getByIndex(oImagen)
ODibujo.dispose
next oImagen

Y este es el error que obtengo:

Error de ejecución de BASIC.
Se ha producido una excepción
Type: com.sun.star.lang.IndexOutOfBoundsException
Message

¿Qué ha podido pasar?

Siempre menciona tu sistema operativo y versión de LiberOffice, así como la aplicación a la que te refieres… y… la línea donde te marca el error… que supongo es:

ODibujo = oDoc.getByIndex(oImagen)

¿alguna razón para hacer el indexado inverso?

El error te dice que no hay un objeto con ese índice.

Perdón, Windows 10, LibreOffice 7.3.0.3. Hay documentos que ha veces tienen insertada una imagen a modo de logo, con esta macro simplemente la elimina, funcionó correctamente hasta que desinstalé el LibreOffice, eso es lo que no termino de entender, la línea que da el error fectivamente es:
ODibujo = oDoc.getByIndex(oImagen)

Supongo que te refieres a Writer… ¿verdad?

Si estas usando Writer, y quieres borrar todas las imágenes, usa:

Sub borrar_todas_las_imagenes()
	doc = ThisComponent
	dp = doc.DrawPage
	For Each image In dp
		dp.remove(image)
	Next 
End Sub

No uses el método dispose, aunque “aparentemente” funciona, en realidad no es el método correcto.

Perfecto, muchas gracias