AW: Diagramme mit Makro umformatieren
28.08.2014 16:57:23
fcs
Hallo Wo,
nachfolgend entsprechende Makros zum Formatieren von Diagrammen.
Die Hauptprozedur "DiagrammeFormatieren" formatiert in der aktiven Arbeitsmappe alle Diagramme um.
Falls das anders ablaufen soll, dann muss eine modifizierte Hauptprozedur erstellt werden.
Die Makros solltest du in ein allgemeines Modul deiner persönlichen Makroarbeitsmappe einfügen.
Wenn alle Diagramme in einer Arbeitsmappe enthalten sind, dann kannst du die Makros auch in dieser Datei einbauen.
Gruß
Franz
Sub DiagrammeFormatieren()
Dim objChart As Object
Dim wks As Worksheet
'Alle eingebetteten Diagramme in den Tabellenblättern
For Each wks In ActiveWorkbook.Worksheets
For Each objChart In wks.ChartObjects
Call prcDiagramFormat(objChart:=objChart.Chart)
Next
Next wks
'Alle separaten Diagrammblätter
For Each objChart In ActiveWorkbook.Charts
Call prcDiagramFormat(objChart:=objChart)
Next
End Sub
Sub prcDiagramFormat(objChart As Chart)
Dim objReihe As Series
Dim objAxis As Axis
With objChart
'1. Diagrammtitel-Textfarbe:
'rot=64, grün=149, blau=218
If .HasTitle Then
With .ChartTitle
.Characters.Font.Color = RGB(64, 149, 218)
End With
End If
'2. X-Achse:
'Linienfarbe = weiß
If .HasAxis(xlCategory) Then
Set objAxis = .Axes(Type:=xlCategory)
With objAxis
.Format.Line.ForeColor.RGB = RGB(25, 255, 255)
End With
End If
'3. Y-Achse:
'Linienfarbe=weiß, Textfarbe=weiß, Textgröße=12
If .HasAxis(xlValue) Then
Set objAxis = .Axes(Type:=xlValue)
With objAxis
.Format.Line.ForeColor.RGB = RGB(25, 255, 255)
With .TickLabels.Font
.Color = RGB(255, 255, 255)
.Size = 12
End With
End With
End If
'4. Datentabelle:
'Textfarbe=weiß, Textgröße=10
If .HasDataTable Then
With .DataTable
.Font.Color = RGB(255, 255, 255)
End With
End If
'5. Alle Datenreihen:
'Rahmenfarbe = weiß
For Each objReihe In .SeriesCollection
With objReihe
With .Format.Line
.ForeColor.RGB = RGB(255, 255, 255)
End With
End With
Next
'7. Hintergrundfarbe (des gesamten Diagramms)=schwarz
With .ChartArea
With .Format.Fill
.ForeColor.RGB = RGB(0, 0, 0)
End With
End With
With .PlotArea
With .Format.Fill
.ForeColor.RGB = RGB(0, 0, 0)
End With
End With
End With
End Sub