Diagramm Linien einfärben
13. Mai 2009
Falls man in Diagrammen die Linienfarben ändern möchte, lässt sich das einfach mit diesem Makro unterstützen. So lassen sich auf Knopfdruck alle Diagramme innerhalb einer Excel-Datei abhängig von der Linienart (Markierung) einfärben.
Zur Funktion des Makros:
Die erste For-Each-Schleife durchläuft alle Blätter der Datei, die zweite Schleife alle Diagramme und die dritte Schleife alle Linien des Diagramms. Abhängig vom MarkerStyle wird in der Select Case Anweisung der ColorIndex definiert.
Der ColorIndex wird dann der Linienfarbe, dem Marker und der Markerfüllung zugewiesen.
VBA:
-
Sub DiagrammeFaerben()
-
'
-
Dim mySht As Worksheet
-
Dim myDia As Object
-
Dim myLine As Object
-
Dim lineColorIndex As Long
-
For Each mySht In ActiveWorkbook.Sheets
-
-
For Each myDia In mySht.ChartObjects
-
-
For Each myLine In myDia.Chart.SeriesCollection
-
-
' XlMarkerStyle kann eine der folgenden
-
' XlMarkerStyle-Konstanten sein.
-
' xlMarkerStyleAutomatic. Automatische Markierungen.
-
' xlMarkerStyleCircle. Runde Markierungen.
-
' xlMarkerStyleDash. Lange Balken als Markierungen.
-
' xlMarkerStyleDiamond. Rautenförmige Markierungen.
-
' xlMarkerStyleDot. Kurze Balken als Markierungen.
-
' xlMarkerStyleNone. Keine Markierung.
-
' xlMarkerStylePicture. Bildmarkierungen.
-
' xlMarkerStylePlus. Quadratische Markierungen mit Pluszeichen.
-
' xlMarkerStyleSquare. Quadratische Markierungen.
-
' xlMarkerStyleStar Quadratische Markierungen mit Sternchen.
-
' xlMarkerStyleTriangle. Dreieckige Markierungen.
-
' xlMarkerStyleX. Quadratische Markierungen mit einem X.
-
-
Select Case myLine.MarkerStyle
-
Case xlMarkerStyleCircle
-
lineColorIndex = 1
-
Case xlMarkerStyleDash
-
lineColorIndex = 2
-
Case xlDiamond
-
lineColorIndex = 3
-
Case xlMarkerStyleDot
-
lineColorIndex = 4
-
Case xlMarkerStyleNone
-
lineColorIndex = 5
-
Case xlMarkerStylePicture
-
lineColorIndex = 6
-
Case xlMarkerStylePlus
-
lineColorIndex = 7
-
Case xlMarkerStyleSquare
-
lineColorIndex = 8
-
Case xlMarkerStyleStar
-
lineColorIndex = 9
-
Case xlMarkerStyleTriangle
-
lineColorIndex = 10
-
Case xlMarkerStyleX
-
lineColorIndex = 11
-
Case Else
-
lineColorIndex = 12
-
End Select
-
-
myLine.MarkerBackgroundColorIndex = lineColorIndex
-
myLine.MarkerForegroundColorIndex = lineColorIndex
-
myLine.Border.ColorIndex = lineColorIndex
-
Next myLine
-
-
Next myDia
-
-
Next mySht
-
-
MsgBox "eingefärbt"
-
End Sub