Also versuche ich's mal.
Grafikobjekte liegen innerhalb eines CALC-Sheets in dem Object
DrawPage. Jedes Sheet hat eine eigene Drawpage.
'Aufruf des Sheets und der Drawpage
Doc = thisComponent
mySheet = Doc.Sheets(0)
Page = mySheet.drawPage
Um auf eine einzelne Grafik zuzugreifen, muß man den Index innerhalb
der Drawpage wissen. Um die Grafik zuzuweisen wird eine Instanz des
Objekts benötigt.
Grafik= doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Grafik = Page.getbyIndex(0)
Die wichtigste Information dieses Objektes ist die GraphicURL. Diese wird
verwendet um ein neues Graphikobjekt zu erzeugen und einzufügen.
Das erste Element kann man nicht in eine zweite Drawpage einfügen.
(Zumindestens habe ich es nicht hinbekommen).
NeueUrl=Grafik.GraphicURL
Jetzt wird ein neues Grafikshape erzeugt.
NewGrafik=
doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Für diese braucht man noch die Zieladresse und Höhe/Größe
Dim Point As New com.sun.star.awt.Point
Dim Size As New com.sun.star.awt.Size
Point.x = 1000
Point.y = 1000
Size.Width = 10000
Size.Height = 10000
Zuweisen der Werte
NewGrafik.GraphicURL=NeueUrl
NewGrafik.Position=Point
NewGrafik.Size=Size
Neues Sheet aktiveren und einfügen
mySheet = Doc.Sheets(1)
Page = mySheet.drawPage
Page.add(NewGrafik)
So jetzt das Ganze noch mal in einem Stück:
(Voraussetzung: In Sheet 1 ist eine Grafik)
sub GrafikausSheet1nach2
Doc = thisComponent
mySheet = Doc.Sheets(0)
Page = mySheet.drawPage
Grafik= doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Grafik = Page.getbyIndex(0)
NeueUrl=Grafik.GraphicURL
NewGrafik=
doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Dim Point As New com.sun.star.awt.Point
Dim Size As New com.sun.star.awt.Size
Point.x = 1000
Point.y = 1000
Size.Width = 10000
Size.Height = 10000
NewGrafik.GraphicURL=NeueUrl
NewGrafik.Position=Point
NewGrafik.Size=Size
mySheet = Doc.Sheets(1)
Page = mySheet.drawPage
Page.add(NewGrafik)
end sub