Hallo Stephan,
erstmal eine Danke schön vorweg für deine Bemühungen.
ich habe keine Ahnung wie das geht.
Aber dafür scheine ich jetzt wohl auf dem "richtigen" Weg zu sein, habe aber die Lösung noch nicht hinbekommen, doch dazu gleich mehr.
Wenn ich im Diagramm die Diagrammwand markiere und dieses Makro darauf loslasse:
[...]
wird zwar die Größe geändert, aber die des ganzen Diagramms. Augenscheinlich orientiert sich LO an der 'äußeren' Selektion und greift garnicht auf die Diagrammwand zu.
Ja neeh! Ganz so ist das dann doch nicht. Wenn man weiss wie das ganze wirklich gehandhabt wird, zumindest nach meinem momentanigem Wissensstand, dann kann man das wohl irgendwie verstehen, aber Logisch ist es anfangs dennoch nicht.
Bezogen auf Deinen Code, sollte Obiges entsprechen:
chart2.Area.Size
Und damit hattest Du mir einen Weg aufgezeigt, an dem ich nicht gedacht hatte, da er mir sehr unlogisch vorkam.
Also, unter
Wall werden nur "Schönheitsoperationen" durchgeführt. Das heißt; Soll die Hausfasade Gelb oder Blau angestrichen werden und soll vielleicht noch ein Firmenlogo angebracht werden. Ich habe das ganze jetzt mal sehr Lapidar mit einem Hausanstrich verglichen, da dies irgendwie am besten zu WALL(Wand) dazu passt. Kurz und gut, dort geht es nur um die Kosmetik.
Bevor man jedoch ein Haus anstreichen kann, muss es ja erstmal gebaut werden. Und dieser Prozess wird vom Anstreichen getrennt. Und für meinen Fall bedeutet das, ich muss mich nicht auf
Wall konzentrieren, sondern einen anderen Weg gehen den ich aber erstmal suchen musste. Und da kam mir dein Denkanstoß mit "chart2.Area.Size" grad recht.
Und der wohl "richtige" Weg führt dann nämlich über
chart2.Diagram.XAxis.Size. Es handelt sich dabei um einen Struct. Das heißt, es gibt dort
.Height und
.Width. Und beim reinschauen von
.Height sah ich einen Wert der sehr nahe an den Wert kommt, als wenn man die Diagrammwand anklickt und sich dort bei "Position und Größe" die Höhe anschaut. Er ist so um ca. 1 cm kleiner als für das gesamte Diagramm.
So viel zu meinen Recherchen Ergebnissen.
Das dumme ist jetzt nur, da
.Size ein Struct ist, bekomme ich es nicht auf die Reihe das ganze auch richtig anzuwenden. In meiner Beispieldatei habe ich ja schon mehrere Structs drin, z.B. für die Position und Größe des gesamten Diagramms. Aber irgendwie bekomme ich jetzt das Struct für die X-Achse einfach nicht ans Laufen.
Die
chart2.Diagram.XAxis.Size unterstüzt ja auch
com.sun.star.awt.Size. Und da ich ja diesen Struct in der Beispieldatei ja schon praktisch anwende,
Code: Alles auswählen
Dim aSize as new com.sun.star.awt.Size
[...]
aSize.Width = 28020
aSize.Height = 18430
chart2.Diagram.setSize (aSize)
dachte ich mir das ich das ganze jetzt wie folgt ergänze.
Code: Alles auswählen
Dim XSize as new com.sun.star.awt.Size
[...]
XSize.Width = 0
XSize.Height = 18000
chart2.Diagram.XAxis.setSize (XSize)
Aber Pustekuchen, nix is!
Das Makro gibt keine Fehlermeldung aus, es läuft ohne Probleme durch. Aber wenn ich anschließend sofort XRAY darauf ansetze, steht in dem Struct für die Höhe noch der alte Wert drin. Und es ist auch rein optisch zu erkennen, das sich an der Höhe nix geändert hat.
Ich frage mich jetzt also, was mache ich falsch und wie müsste dieses Struct richtig angewendet werden?
Hast Du, lieber Stephan, da vielleicht eine Idee, oder jemand anderer?
Gruß
balu