Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Auotscalefont

Forumthread: VBA Auotscalefont

VBA Auotscalefont
15.08.2014 10:11:56
Ernst
Hallo zusammen
Ich möchte in einer Datei bei allen Grafiken, die auf den Blättern mit den Namen "Abb_?" eingebettet sind, die Schriften automatisch per Makro der Grafikgrösse anpassen.
For Each ws In wb.Worksheets
If InStr(1, ws.Name, "Abb_") = 1 Then
For Each chtO In ws.ChartObjects
With chtO.Chart
.ChartArea.AutoScaleFont = True
For Each ax In .Axes
If ax.HasTitle Then ax.AxisTitle.AutoScaleFont = True
ax.TickLabels.AutoScaleFont = True
Next
If .HasTitle Then .ChartTitle.AutoScaleFont = True
If .HasLegend Then .Legend.AutoScaleFont = True
End With
Next
End If
Next
Das Makro läuft durch, wählt alle Grafiken an und auf den Grafiken alle gewünschten Elemente. Aber das Attribute ".Autoscalefont" bleibt bei allen Elementen auf "Falsch". Was läuft hier schief?
Besten Dank für einen Hinweis
Ernst
PS. Weder die Datei, noch die einzelnen Blätter sind geschützt...

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Auotscalefont
17.08.2014 22:57:20
Frank
Hallo Ernst,
ohne Beispielmappe ist das nicht so einfach.
Auf den ersten Blick würde ich Dir raten, doch mal die Objektansprache zu prüfen
If ax.HasTitle Then ax.AxisTitle.AutoScaleFont = True
If .HasTitle Then .ChartTitle.AutoScaleFont = True
If .HasLegend Then .Legend.AutoScaleFont = True
Vielleicht muss das ja heissen
If ax.HasTitle Then ax.Title.AutoScaleFont = True
If .HasTitle Then .Title.AutoScaleFont = True
If .HasLegend Then .Legend.AutoScaleFont = True
Scheint mir jeweils doppelt gemoppelt zu sein. Beispiel Axes: Die sprichst Du ja schon an als each ax in .Axes an. Also muss beim Objekt ax nicht mehr dazu gesagt werden, dass es um .AxisTitle geht.
Da kann ich aber auch die späte Stunde täuschen...
Grüsse, Frank

Anzeige
AW: VBA Auotscalefont
18.08.2014 10:16:45
Ernst
Hallo Frank
Besten Dank für Deinen Hinweis. Nach meinen Informationen haben aber die Objekte "Axis" und "Chart" kein Element "Title", sondern nur "Axistitle" und "Charttitle" {siehe auch http://msdn.microsoft.com/en-us/library/ff195770(v=office.14).aspx und
http://msdn.microsoft.com/en-us/library/ff837379(v=office.14).aspx }.
Zudem gibt diese Referenz auch keinen Hinweis auf die Eigenschaft ".AutoscaleFont" und ist daher nicht vollständig.
Mein Problem wird dadurch nicht behoben...
Freundliche Grüsse aus der Schweiz
Ernst

Anzeige
AW: VBA Auotscalefont
18.08.2014 22:17:09
Frank
Hoi Ernst
Wie ich schon geschrieben hatte: ohne Beispielmappe ist das nicht so einfach. Nachbauen will das sicher keiner. Auch ist der Codeausschnitt zu klein, um was sagen zu können. Weiss ich denn, ob der überhaupt durchlaufen wird?
Bei genauerer Betrachtung gibt es wohl nur das Objekt .Axes nicht:
For Each ax In .Axes

Versuch's hier doch mal mit .Axis
Grüsse
Frank

Anzeige
AW: VBA Auotscalefont
20.08.2014 11:35:20
Ernst
Hallo Frank
gut, hier kommt die anonymisierte Datei https://www.herber.de/bbs/user/92198.xlsm
Das Makro heisst AutoScale
.Axes bezeichnet die Sammlung aller Achsen, das Objekt .Axis ist eine davon.
Die Eigenschaft ".AutoScaleFont" wird immer noch nicht gesetzt...
Freundliche Grüsse aus der Schweiz
Ernst

Anzeige
AW: VBA Auotscalefont
21.08.2014 16:54:03
Frank
Hoi Ernst
Mal davon abgesehen, dass sich an der Darstellung der Achsen und Titel nichts ändert, funktioniert die Zuweisung tadellos.
Ich weiss ja nicht, wie Du das prüfst, ich rechtsklicke vor dem Durchlauf des Makros auf eine beliebige Achse eines beliebigen Diagramms in einem beliebigen... na Du weisst schon. Ich wähle 'Achse formatieren', Reiter 'Schrift' und da ist im Kästchen 'Automatisch skalieren' kein Häkchen drin. Nach dem Durchlauf des Makros mache ich das mit der gleichen Achse nochmal. Und siehe da: Das Häkchen ist drin.
Das ist bei Dir nicht so?
Grüsse
Frank

Anzeige
AW: VBA Auotscalefont
24.08.2014 21:42:14
Ernst
Hallo Frank
ich habe es jeweils direkt innerhalb des Makros nach einer Grafik im Direktfenster (Ctrl-G) geprüft, da ich den von Dir beschriebenen Reiter nicht gefunden habe. Bei mir (Excel 2010) sieht der "Achsen-formatieren-Dialog" nämlich wie auf dem Screen-Shot aus. Wo ist also der Reiter Schrift verschwunden?
https://www.herber.de/bbs/user/92268.jpg
Besten Dank für den Tip....
Ernst
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige