Profi-Excel.de

Die Seite für den professionellen Umgang mit Excel und VBA

      • 5 user online
      • 48390 Besucher insgesamt

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:
  1. Sub DiagrammeFaerben()
  2. '
  3. Dim mySht As Worksheet
  4. Dim myDia As Object
  5. Dim myLine As Object
  6. Dim lineColorIndex As Long
  7. For Each mySht In ActiveWorkbook.Sheets
  8.    
  9.     For Each myDia In mySht.ChartObjects
  10.      
  11.       For Each myLine In myDia.Chart.SeriesCollection
  12.  
  13. '        XlMarkerStyle kann eine der folgenden
  14. '        XlMarkerStyle-Konstanten sein.
  15. '        xlMarkerStyleAutomatic. Automatische Markierungen.
  16. '        xlMarkerStyleCircle. Runde Markierungen.
  17. '        xlMarkerStyleDash. Lange Balken als Markierungen.
  18. '        xlMarkerStyleDiamond. Rautenförmige Markierungen.
  19. '        xlMarkerStyleDot. Kurze Balken als Markierungen.
  20. '        xlMarkerStyleNone. Keine Markierung.
  21. '        xlMarkerStylePicture. Bildmarkierungen.
  22. '        xlMarkerStylePlus. Quadratische Markierungen mit Pluszeichen.
  23. '        xlMarkerStyleSquare. Quadratische Markierungen.
  24. '        xlMarkerStyleStar Quadratische Markierungen mit Sternchen.
  25. '        xlMarkerStyleTriangle. Dreieckige Markierungen.
  26. '        xlMarkerStyleX. Quadratische Markierungen mit einem X.
  27.  
  28.         Select Case myLine.MarkerStyle
  29.           Case xlMarkerStyleCircle
  30.             lineColorIndex = 1
  31.           Case xlMarkerStyleDash
  32.             lineColorIndex = 2
  33.           Case xlDiamond
  34.             lineColorIndex = 3
  35.           Case xlMarkerStyleDot
  36.             lineColorIndex = 4
  37.           Case xlMarkerStyleNone
  38.             lineColorIndex = 5
  39.           Case xlMarkerStylePicture
  40.             lineColorIndex = 6
  41.           Case xlMarkerStylePlus
  42.             lineColorIndex = 7
  43.           Case xlMarkerStyleSquare
  44.             lineColorIndex = 8
  45.           Case xlMarkerStyleStar
  46.             lineColorIndex = 9
  47.           Case xlMarkerStyleTriangle
  48.             lineColorIndex = 10
  49.           Case xlMarkerStyleX
  50.             lineColorIndex = 11
  51.           Case Else
  52.             lineColorIndex = 12
  53.         End Select
  54.        
  55.         myLine.MarkerBackgroundColorIndex = lineColorIndex
  56.         myLine.MarkerForegroundColorIndex = lineColorIndex
  57.         myLine.Border.ColorIndex = lineColorIndex
  58.       Next myLine
  59.      
  60.     Next myDia
  61.    
  62. Next mySht
  63.  
  64. MsgBox "eingefärbt"
  65. End Sub

Kommentar schreiben

XHTML: Sie können diese Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>