Seite 1 von 1

[gelöst] Einem Textfeld Attribut CellAddress hinzufügen

Verfasst: Do, 06.12.2012 14:42
von Maggus
Hallo,
man kann ja manuell ein Textfeld (com.sun.star.drawing.XShape) erzeugen und diesem dann über "RMT > Verankerung > An der Zelle" einen Anker in einer Zelle zuweisen. Aber wie setze ich diesen Anker per Script?

Das kuriose:
Ich greife also auf com.sun.star.drawing.XShape zu und dort gibt es bei "Anchor" das Attribut "CellAddress" erst, wenn ich die Verankerung manuell hinzugefügt habe. Will ich im Script aber z.B. "oShape.Anchor.CellAddress.Row = 1" setzen, sagt er mir "unzulässiger Wert oder Datentyp". Hab ichs erstmal manuell hinzugefügt kann ich problemlos darauf zugreifen.

Das ganze hab ich in OOo 3.1.1 und LO 3.5.3 in Calc probiert.

Gruß,

Re: Einem Textfeld Attribut CellAddress hinzufügen

Verfasst: Do, 06.12.2012 16:08
von Maggus
Ich habs endlich rausgefunden.
In diesem Beitrag hab ich den Entsprechenden Hinweis zur Lösung gefunden:

Code: Alles auswählen

Sub Main
sheet = thiscomponent.sheets.getbyindex(0)'erstes Tabellenblatt
cell = sheet.getcellbyposition(1,1) 'Zielzelle B2
shape = sheet.DrawPage.getByIndex(0)'das Objekt mit Index 0
shape.Anchor = cell
End Sub
Aus MRI wurde mir diese Möglichkeit allerdings nicht ersichtlich.

Desweiteren habe ich herausgefunden, dass man dieses Attribut erst setzen kann, NACHDEM man mit z.B.

Code: Alles auswählen

oDrawpage.Add(oShape)
Das Textfeld der Drawpage hinzugefügt hat. Warum auch immer...