Einleitung
Ein Diagramm ist eine visuelle Darstellung von Daten. Ein Diagramm kann viele Datenpunkte in einem einzigen Bild zusammenfassen. Ein Diagramm sollte die zugrunde liegenden Daten erklären. Es aber auch ermöglichen, Problempunkte zu identifizieren, die einer weiteren Analyse bedürfen.
Ein Diagramm in Excel einfügen
Die Schritte für das Einfügen eines Diagramms in ein Tabellenblatt sind wie folgt
- Die Daten für das Diagramm auswählen.
- Auf den Reiter „Einfügen“ klicken.
- In der Rubrik „Diagramme“ auf die gewünschte Diagrammkategorie klicken. In dem in der Abbildung gezeigten Beispiel wird ein Diagramm der Kategorie „Punkt (XY)“ ausgewählt. Diagramme dieser Katewgorie werden zur Darstellung von Daten aus dem wissenschaftlichen oder technischen Bereich verwendet. Es öffnet sich ein Pop-Up Fenster, in dem die Diagrammtypen angezeigt werden.
- Auf den den gewünschten Diagrammtyp klicken.
Dann wird das Diagramm in das Tabellenblatt eingefügt.
Klickt man mit der linken Maustaste in den Diagrammbereich öffnet sich der Reiter „Diagrammentwurf“. Dort lässt sich das eingefügte Diagramm an die eigenen Wünsche anpassen. Man kann beispielsweise ein Schnelllayout auswählen oder Diagrammelemente wie Achsentitel oder Diagrammtitel hinzufügen.
Klickt man mit der rechten Maustaste auch einen der Datenpunkte im Diagramm erscheint ein Pop_up Fenster. Dort kann man
- mit einem Klick auf „Datenreihen-Diagrammtyp ändern …“ den Diagrammtyp ändern.
- mit einem Klick auf „Daten auswählen“ z. B. eine weitere Datenreihe hinzufügen.
- mit einem Klick auf den Pfeil rechts neben „Datenbeschriftung hinzufügen“ Datenbeschriftungen oder Datenlegenden hinzufügen.
- mit einem Klick auf „Trendlinie hinzufügen…“ eine Trendlinie einfügen.
- mit einem Klick auf „Datenreihen formattieren…“, das Format der Datenreihen ändern. Beispielsweise kann man die Datenpunkte durch eine Linie verbinden oder das Aussehen der Symbole für die Datenpunkte ändern.
Außerdem werden die Datenreihen mit einem Rahmen markiert. Durch Ziehen mit der Maus an den Ziehkästchen rechts unten lässt sich die Zahl der ausgewählten Zellen erweitern oder verkürzen.
Diagrammkategorien und Diagrammtypen
in Microsoft 365 gibt es 16 Diagrammkategorien und 57 Diagrammtypen, die in den beiden folgenden Tabellen aufgeführt sind. Nicht alle Kategorien und Diagrammtypen sind in allen Excel Versionen verfügbar. Die xlChartType Konstanten in Spalte 3 werden für VBA benötigt. Die unterschiedlichen Diagrammtypen können unterschiedliche Anforderungen an die Daten haben.
Diagramme in VBA erstellen oder ändern
In VBA werden die Diagrammtypen durch die Konstanten der Auflistung „XlChartType“ in den beiden Tabellen repräsentiert.
Diagramm in einem Tabellenblatt einfügen
Hierfür gibt es zwei Möglichkeiten
Möglichkeit 1
Ein Diagramm mit der „Shape.AddCharts2“ Methode in ein Tabellenblatt einfügen. Die Syntax ist
ausdruck.AddChart2(Style, XlChartType, Left, Top, Width, Height, NewLayout)
wobei
- ausdruck – Variable, die ein Shape-Objekt darstellt.
- Style – Optional, Diagrammformat. Verwenden Sie „-1“, um die Standardformatvorlage für den in XlChartType angegebenen Diagrammtyp abzurufen.
- XlChartType – Optional, Diagrammtyp
- Left – Optional, Position (in Punkt) des linken Rands des Diagramms relativ zum Anker.
- Top – Optional, Position (in Punkt) des oberen Rands des Diagramms relativ zum Anker.
- Width – Optional, Breite des Diagramms in Punkt.
- Height – Optional, Höhe des Diagramms in Punkt.
- NewLayout – Optional, Wenn NewLayout = True, wird das Diagramm mit den neuen dynamischen Formatierungsregeln eingefügt (Titel ist aktiv, und Legende ist nur aktiv, wenn mehrere Reihen vorliegen).
Sub Punkt_Diagramm_Einfuegen_1() Dim ws As Worksheet, sh As Shape, ch As Chart Set ws = Worksheets("Punkt") ' ' Variante 1 'ws.Shapes.AddChart2(240, xlXYScatter).Select 'ActiveChart.SetSourceData Source:=ws.Range("A1:B11") ' ' Variante 2 'ws.Range("A1:B11").Select 'Set sh = ws.Shapes.AddChart2(240, xlXYScatter) ' ' Variante 3 Set sh = ws.Shapes.AddChart2(240, xlXYScatter) Set ch = sh.Chart ch.SetSourceData Source:=ws.Range("A1:B11") ' Gleichwertig: ch.SetSourceData Source:=ws.Range(Cells(1, 1), Cells(11, 2)) ' Set ws = Nothing Set sh = Nothing End Sub
Möglichkeit 2
Ein Diagramm mit der „ChartObject.Add“ Methode in ein Tabellenblatt einfügen. Die Syntax ist
ausdruck.Add(Links, Oben, Breite, Höhe)
wobei:
- Ausdruck – Variable, die ein ChartObject darstellt.
- Links – Erforderlich, Koordinate der linken Seite des Diagramms (in Punkt), relativ zur linken Seite der ausgewählten Zelle in einem Tabellenblatt.
- Oben – Erforderlich, Koordinate der oberen Seite des Diagramms (in Punkt), relativ zur oberen Seite der ausgewählten Zelle in einem Tabellenblatt.
- Breite – Erforderlich, Breite des Diagramms in Punkt.
- Höhe – Erforderlich, Höhe des Diagramms in Punkt.
Sub Punkt_Diagramm_Einfuegen_2() Dim ws As Worksheet, ch As ChartObject, rng As Range Set ws = Worksheets("Punkt") ' ' Datenbereich für das Diagramm Set rng = ws.Range("A1:B12") ' Diagramm einfügen Set ch = ws.ChartObjects.Add( _ Left:=ws.Cells(2, 4).Left, _ Width:=450, _ Top:=ws.Cells(2, 4).Top, _ Height:=250) ' ' Den Diagrammtyp festlegem ch.Chart.ChartType = xlXYScatter ' ' Den Datenbereich zuweisen ch.Chart.SetSourceData Source:=rng ' Set ws = Nothing Set ch = Nothing End Sub
Diagramm als gesondertes Blatt in eine Excel Arbeitsmappe einfügen
Ein Diagramm mit der „Charts.Add2“ Methode als gesondertes Blatt in eine Excel Arbeitsmappe einfügen. Die Syntax ist
ausdruck. Add2 (Before, After, Count, NewLayout)
wobei
- Ausdruck – Variable, die ein Charts-Objekt darstellt.
- Before – Optional, Worksheet Objekt, das das Tabellenblatt angibt, vor dem das neue Diagramm Blatt eingefügt wird.
- After – Optional, Worksheet Objekt, das das Tabellenblatt angibt, hinter dem das neue Diagramm Blatt hinzugefügt wird.
- Count – Optional, Anzahl der hinzuzufügenden Zeilen. Der Standardwert lautet eins.
- NewLayout – Optional, Wenn NewLayout = True, wird das Diagramm mit den neuen dynamischen Formatierungsregeln eingefügt (Titel ist aktiv, und Legende ist nur aktiv, wenn mehrere Reihen vorliegen).
Sub Punkt_Diagramm_Einfuegen_4() Dim MeinDiagramm As Chart, ws As Worksheet ' Set ws = Worksheets("Punkt") ' ' Neues Blatt als Diagrammblatt hinzufuegen Set MeinDiagramm = Charts.Add2(After:=ws) ' With MeinDiagramm ' Hier kommt es auf die Reihenfolge an ' Diagrammtyp setzen .ChartType = xlXYScatter ' Quelldaten zuweisen .SetSourceData ws.Range("A1:B12") End With ' Set ws = Nothing Set MeinDiagramm = Nothing End Sub
Diagramm anpassen
Mit folgendem Beispiel Code lässt sich ein Diagramm an die eigenen Wünsche anpassen.Es gibt viele Möglichkeiten, ein Diagramm anzupassen. Daher ist es nicht immer einfach, die benötigten Anweisungen zu finden.
Sub Punkt_Diagramm_Anpassen() Dim ws As Worksheet, ch As ChartObject Set ws = Worksheets("Punkt") ' Set ch = ws.ChartObjects("Diagramm 6") With ch.Chart ' Sicher stellen, dass das Diagramm einen Titel hat .HasTitle = True ' Den Titel des Diagramms ändern .ChartTitle.Text = "Kurve" End With ' ch.Chart.SetSourceData Source:=ws.Range("A1:B12") ' Gleichwertig: ch.Chart.SetSourceData Source:=ws.Range(Cells(1, 1), Cells(12, 2)) ' ' Achsentitel einfuegen ' Achsentitel für die horizontale Achse einfügen With ch.Chart.Axes(xlCategory) .HasTitle = True .AxisTitle.Text = "x-Achse" .HasMajorGridlines = True .HasMinorGridlines = True End With ' Achsentitel für die vertikale Achse einfügen With ch.Chart.Axes(xlValue) .HasTitle = True .AxisTitle.Text = "y-Achse" .HasMajorGridlines = True .HasMinorGridlines = True End With ' ' Verbindungslinie formattieren With ch.Chart.FullSeriesCollection(1).Format.Line .Visible = msoTrue .ForeColor.RGB = RGB(0, 0, 255) .Weight = 0.75 End With ' ' Ränder des Diagramms ändern With ch.Chart .ChartArea.Border.LineStyle = xlContinuous ' xlDash .ChartArea.Border.Weight = xlThin ' xlThick .ChartArea.Border.Color = RGB(0, 0, 0) .ChartArea.Format.Fill.ForeColor.RGB = RGB(255, 0, 0) .PlotArea.Border.LineStyle = xlContinuous ' xlDot .PlotArea.Border.Weight = xlThin ' xlThick .PlotArea.Border.Color = RGB(0, 0, 0) '.PlotArea.Format.Fill.ForeColor.RGB = RGB(255, 0, 0) '.PlotArea.Format.Fill.ForeColor = xlNone End With Set ws = Nothing Set ch = Nothing End Sub
Den Namen des Diagramms findet man, in dem man mit der linken Maustaste in den Diagrammbereich klíckt. Dann wird der Diagrammname im blau markierten Bereich angezeigt.