AW: Diagramme vergrößern / Skalieren
12.04.2010 13:57:07
fcs
Hallo Mark,
für alle Elemente mit Text (Achsen, Legende etc) gibt es in Excel 2003 im Formatierungs-Register "Schrift" die Option "Automatisch Skalieren". Diese ist standardmäßig aktiv.
Man muss diese Option für jedes Element einzeln deaktivieren. Einen zentralen Schalter gibt es meines Wissens nicht.
Wo diese Option in Excel 2007 versteckt ist, kann ich von meinem aktellen Standort nicht prüfen.
Falls du ein Diagramm öfters mit anderen als den Excel-Standard-Formatierungen benötigst, dann formatiere ein Diagramm nach deiner Wunschliste und erstelle daraus eine benutzerdefinierte Diagramm-Mustervorlage.
Mit dem nachfolgenden Makro kann man das Auto-Skalieren des Fonts der meisten Diagramm-Elemente in einem existierenden Diagramm deaktivieren. Makro in ein allgemeines Modul der persönlichen Makroarbeitsmappe kopieren.
Gruß
Franz
'Erstellt unter Excel 2003
Sub Diagramm_AutoscaleFont_False()
' AutoScaleFont von Achsen, Titeln, Datenbeschriftungen und Legende im Diagramm deaktivieren
Dim oChart As Chart, oAxis As Axis, oReihe As Series, iI As Integer
If ActiveSheet.Type = xlWorksheet Then
If ActiveSheet.ChartObjects.Count > 0 Then
For iI = 1 To ActiveSheet.ChartObjects.Count
Call Diagramm_Format(ActiveSheet.ChartObjects(iI).Chart, False)
Next
Else
MsgBox "Keine Diagramme im aktiven Blatt"
End If
Else
Call Diagramm_Format(ActiveSheet, False)
End If
End Sub
Private Sub Diagramm_Format(oChart As Chart, Optional bAutoScaleFont As Boolean = False)
' AutoScaleFont von Achsen, Titeln, Datenbeschriftungen und Legende im Diagramm _
aktivieren/deaktivieren
Dim oAxis As Axis, oReihe As Series, iI As Integer
With oChart
'Diagramm-Achsen
If .HasAxis(xlValue, xlPrimary) Then
Set oAxis = .Axes(xlValue, xlPrimary)
With oAxis
.TickLabels.AutoScaleFont = bAutoScaleFont
If .HasTitle Then
.AxisTitle.AutoScaleFont = bAutoScaleFont
End If
End With
End If
If .HasAxis(xlValue, xlSecondary) Then
Set oAxis = .Axes(xlValue, xlSecondary)
With oAxis
.TickLabels.AutoScaleFont = bAutoScaleFont
If .HasTitle Then
.AxisTitle.AutoScaleFont = bAutoScaleFont
End If
End With
End If
If .HasAxis(xlCategory) Then
Set oAxis = .Axes(xlCategory)
With oAxis
.TickLabels.AutoScaleFont = bAutoScaleFont
If .HasTitle Then
.AxisTitle.AutoScaleFont = bAutoScaleFont
End If
End With
End If
'Diagrammlegende
If .HasLegend Then
With .Legend
.AutoScaleFont = bAutoScaleFont
End With
End If
'Diagrammtitel
If .HasTitle Then
With .ChartTitle
.AutoScaleFont = bAutoScaleFont
End With
End If
'Beschriftung von datenreihen
For Each oReihe In .SeriesCollection
If oReihe.HasDataLabels Then
oReihe.DataLabels.AutoScaleFont = bAutoScaleFont
End If
Next
End With
End Sub