Excel VBA - Schriftgröße von Diagrammen anpassen

Hallo,

mein Problem:
Ich hab ein VBA-Makro geschrieben, welches mir automatisch 10 Diagramme erstellt. Diese sollen gleichen Typs sein.
Ich möchte für „Diagrammtitel“ Schriftgröße 12 und für „Achsenbeschriftungen“, „Achsenwerte“ und „Legende“ Schriftgröße 7.
Es gelingt mir für alle, außer den „Achswerten“ also die Zahlen (0 1 2 3 4) für x/y-Achse.

Bsp:

'------- Achsenbeschriftung --------
ActiveChart.Axes(xlValue).AxisTitle.Format.Textframe2.Textrange.Font.Size = 7
FUNKTIONIERT

'------- Achsenwerte --------
ActiveChart.Axes(xlValue).Format.Textframe2.Textrange.Font.Size = 7
FUNKTIONIERT NICHT

Kann mir bitte jemand helfen? Ich bin am Verzweifeln. Es wäre auch okay, wenn man ALLE Schriftgrößen eines Diagramms auf 7 setzen könnte, dann brauch ich nur noch den Diagrammtitel vergrößern.

Viele Grüße
Johannes

Kann mir bitte jemand helfen? Ich bin am Verzweifeln. Es wäre
auch okay, wenn man ALLE Schriftgrößen eines Diagramms auf 7
setzen könnte, dann brauch ich nur noch den Diagrammtitel
vergrößern.

Hallo Johannes,

wenn du das manuell machst und dabei ein Makro aufzeichnet, hilft das?

Gruß
Reinhard

Das hilft leider nicht.

Grundsätzlich generiere ich den Code, indem ich ein Makro aufzeichne und dann alles überprüfe bzw. korrigiere.

Grundsätzlich generiere ich den Code, indem ich ein Makro
aufzeichne und dann alles überprüfe bzw. korrigiere.

Hallo Johannes,

und nun?

Wie sieht der aufgezeichnete Code aus und was klappt nicht beim „korrigieren“?

Gruß
Reinhard

Hallo Juri,
die Achsenwerte änderst du mit
ActiveChart.Axes(xlValue).TickLabels.Font.Size=7

Du solltest auf jeden Fall die automatische Skalierung der Fonts ausschalten. Das geht am besten über
ActiveChart.ChartArea.Select.AutoScaleFont=False
Das schaltet alle anderen automatischen Skalierungen gleich mit.

Zumindest bis XL2003 kann nur eine beschränkte Anzahl von Formaten und Schriften je Diagramm verwendet werden. Und bei AutoScaleFont=True wird immer die ursprüngliche Schriftformatierung für alle veränderbaren Objekte gespeichert. Da ist man dann schnell am Ende und wundert sich, dass sein VBA-Script nicht läuft. Gibt nämlich nur komische Fehlermeldungen.

Weiter solltest Du in einer Anwendung auf ActiveChart, ActiveSheet und solche Sachen verzichten, da dann der Anwender während eine VBA-Funktion läuft mit einem unvorhergesehen Klick alles durcheinanderbringen kann.

Gruß
Vincenz

Hallo Johannes,

und nun?

Wie sieht der aufgezeichnete Code aus und was klappt nicht
beim „korrigieren“?

Gruß
Reinhard

Hallo Reinhard,
vielen Dank erstmal dafür dass du dich meines Problems angenommen hast und versuchst mir zu helfen. Hab mittlerweile aber ne Lösung gefunden. Trotzdem nochmal die Problematik:

AUFGEZEICHNETES MAKRO (Diagramm markieren, Schriftgröße 7 auswählen):

Sub Makro1()
ActiveChart.ChartArea.Select
ActiveSheet.Shapes(„Diagramm 1“).TextFrame2.TextRange.Font.Size = 7
End Sub

ABGEÄNDERT FÜR MEINE SCHLEIFE:
ActiveChart.ChartArea.Select
ActiveSheet.Shapes(Shapes.Count).TextFrame2.TextRange.Font.Size = 7
–> Fehler „Objekt erforderlich“ oder bei Shapes(1) „Wert außerhalb des Bereichs“

=======================
DIE LÖSUNG

Eher zufällig nach vielem Hin und Her:

ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font.Size = 7

…vielleicht hilft es irgendjemandem. Ich bin froh dass es jetzt klappt.