Rückkehr in VBA-Code-Beispiele

VBA – Leitfaden für Diagramme und Graphiken

Excel-Diagramme und -Grafiken werden zur visuellen Darstellung von Daten verwendet. In diesem Tutorial lernen Sie, wie Sie mit VBA Diagramme und Diagrammelemente erstellen und bearbeiten können. Sie können eingebettete Diagramme in einem Arbeitsblatt oder Diagramme in eigenen Diagrammblättern erstellen.

Erstellen eines eingebetteten Diagramms mit VBA

Wir haben den Bereich A1:B4, der die Quelldaten, wie unten dargestellt, enthält:

vba quelldaten fuer diagramm

Sie können ein Diagramm mit der Methode ChartObjects.Add erstellen. Mit dem folgenden Code wird ein eingebettetes Diagramm auf dem Arbeitsblatt erstellt:

Sub Eingebettetes_Diagramm_mit_ChartObject_Erstellen()

Dim eingebettetesDiagramm As ChartObject

Set eingebettetesDiagramm = Sheets("Sheet1").ChartObjects.Add(Left:=180, Width:=300, Top:=7, Height:=200)
eingebettetesDiagramm.Chart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B4")

End Sub

Das Ergebnis ist:

diagramm erstellen chartobjects methode

Sie können ein Diagramm auch mit der Methode Shapes.AddChart erstellen. Mit dem folgenden Code wird ein eingebettetes Diagramm auf dem Arbeitsblatt erstellt:

Sub Eingebettetes_Diagramm_mit_ShapesAddChart_Erstellen()

Dim eingebettetesDiagramm As Shape

Set eingebettetesDiagramm = Sheets("Sheet1").Shapes.AddChart
eingebettetesDiagramm.Chart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B4")

End Sub

Festlegen eines Diagrammtyps mit VBA

Wir haben den Bereich A1:B5, der die Quelldaten enthält (siehe unten):

vba quelldatenbereich kreisdiagramm

Mit der Eigenschaft ChartType können Sie einen Diagrammtyp angeben. Der folgende Code erstellt ein Kreisdiagramm auf dem Arbeitsblatt, da die Eigenschaft ChartType auf xlPie gesetzt wurde:

Sub DiagrammTyp_Spezifizieren()

Dim diag As ChartObject

Set diag = Sheets("Sheet1").ChartObjects.Add(Left:=180, Width:=270, Top:=7, Height:=210)
diag.Chart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B5")
diag.Chart.ChartType = xlPie

End Sub

Das Ergebnis ist:

vba diagrammtyp spezifizieren

Dies sind einige der gängigen Diagrammtypen, die in der Regel angegeben werden. Es gibt jedoch weitere:

  • xlArea
  • xlPie
  • xlLine
  • xlRadar
  • xlXYScatter
  • xlSurface
  • xlBubble
  • xlBarClustered
  • xlColumnClustered

Hinzufügen eines Diagrammtitels mit VBA

Wir haben ein Diagramm im Arbeitsblatt, wie unten gezeigt, ausgewählt:

vba diagramm ohne titel

Sie müssen zunächst mit der Methode Chart.SetElement einen Diagrammtitel hinzufügen und dann den Text des Diagrammtitels angeben, indem Sie die Eigenschaft ChartTitle.Text festlegen. Der folgende Code zeigt Ihnen, wie Sie einen Diagrammtitel hinzufügen und den Titeltext des Aktiven Diagramms festlegen:

Sub Titel_Hinzufuegen_Und_Einstellen()

ActiveChart.SetElement (msoElementChartTitleAboveChart)
    ActiveChart.ChartTitle.Text = "The Sales of the Product"
    
End Sub

Das Ergebnis ist:

vba diagrammtitel hinzufuegen

Hinweis: Sie müssen das Diagramm zuerst auswählen, um es zum aktiven Diagramm zu machen, damit Sie das ActiveChart-Objekt in Ihrem Code verwenden können.

Ändern der Hintergrundfarbe des Diagramms mit VBA

Wir haben ein Diagramm im Arbeitsblatt, wie unten gezeigt, ausgewählt:

vba diagramm hintergrundfarbe aendern

Sie können die Hintergrundfarbe des gesamten Diagramms ändern, indem Sie die RGB-Eigenschaft des FillFormat-Objekts des ChartArea-Objekts einstellen. Mit dem folgenden Code erhält das Diagramm eine hellorangene Hintergrundfarbe:

Sub Diagrammflaeche_Hintergrundfarbe_Einstellen()

ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB(253, 242, 227)

End Sub

Das Ergebnis ist:

vba diagramm hintergrundfarbe geaendert

Sie können auch die Hintergrundfarbe des gesamten Diagramms ändern, indem Sie die Eigenschaft ColorIndex des Interior-Objekts des ChartArea-Objekts einstellen. Mit dem folgenden Code erhält das Diagramm eine orangefarbene Hintergrundfarbe:

Sub Diagrammflaeche_Hintergrundfarbe_Einstellen()

ActiveChart.ChartArea.Interior.ColorIndex = 40

End Sub

Das Ergebnis ist:

diagramm hintergrundfarbe mit farbindex aendern

Hinweis: Mit der Eigenschaft ColorIndex können Sie eine Farbe auf der Grundlage eines Wertes von 1 bis 56 aus der Standard-Palette angeben. Um zu sehen, welche Werte die verschiedenen Farben darstellen, klicken Sie hier.

Ändern der Farbe des Diagrammzeichenbereichs mit VBA

Im Arbeitsblatt ist ein Diagramm ausgewählt (siehe unten):

diagramm zur aenderung der zeichenflaechenfarbe

Sie können nur die Hintergrundfarbe des Diagrammbereichs ändern, indem Sie die RGB-Eigenschaft des FillFormat-Objekts des PlotArea-Objekts einstellen. Mit dem folgenden Code erhält der Zeichenbereich des Diagramms eine hellgrüne Hintergrundfarbe:

Sub Diagrammzeichenflaeche_Hintergrundfarbe_Einstellen()

ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB(208, 254, 202)
    
End Sub

Das Ergebnis ist:

vba diagramm zeichenflaechenfarbe aendern

Hinzufügen einer Legende mit VBA

Wir haben ein Diagramm im Arbeitsblatt, wie unten gezeigt, ausgewählt:

ausgewaehltes diagramm ohne legende

Sie können eine Legende mit der Methode Chart.SetElement hinzufügen. Der folgende Code fügt eine Legende auf der linken Seite des Diagramms hinzu:

Sub Legende_Hinzufuegen()

ActiveChart.SetElement (msoElementLegendLeft)

End Sub

Das Ergebnis ist:

vba diagramm legende hinzufuegen

Sie können die Position der Legende auf folgende Weisen festlegen:

  • msoElementLegendLeft – zeigt die Legende auf der linken Seite des Diagramms an.
  • msoElementLegendLeftOverlay – überlagert die Legende auf der linken Seite des Diagramms.
  • msoElementLegendRight – zeigt die Legende auf der rechten Seite des Diagramms an.
  • msoElementLegendRightOverlay – überlagert die Legende auf der rechten Seite des Diagramms.
  • msoElementLegendBottom – zeigt die Legende am unteren Rand des Diagramms an.
  • msoElementLegendTop – zeigt die Legende am oberen Rand des Diagramms an.

Hinzufügen von Datenbeschriftungen mit VBA

Im Arbeitsblatt ist ein Diagramm, wie unten dargestellt, ausgewählt:

vba kreisdiagramm ohne datenbeschriftungen

Sie können Datenbeschriftungen mit der Methode Chart.SetElement hinzufügen. Der folgende Code fügt Datenbeschriftungen im Innenbereich des Diagramms hinzu:

Sub Datenbeschriftungen_Hinzufuegen()

ActiveChart.SetElement msoElementDataLabelInsideEnd

End Sub

Das Ergebnis ist:

vba kreisdiagramm datenbeschriftungen hinzufuegen

Sie können die Positionierung der Datenbeschriftungen auf folgende Weisen festlegen:

  • msoElementDataLabelShow – zeigt Datenbeschriftungen an.
  • msoElementDataLabelRight – zeigt Datenbeschriftungen auf der rechten Seite des Diagramms an.
  • msoElementDataLabelLeft – zeigt Datenbeschriftungen auf der linken Seite des Diagramms an.
  • msoElementDataLabelTop – zeigt Datenbeschriftungen am oberen Rand des Diagramms an.
  • msoElementDataLabelBestFit – bestimmt die beste Anpassung.
  • msoElementDataLabelBottom – zeigt Datenbeschriftungen am unteren Rand des Diagramms an.
  • msoElementDataLabelCallout – zeigt Datenbeschriftungen in hervorgehobenen Textfeldern an.
  • msoElementDataLabelCenter – zeigt Datenbeschriftungen in der Mitte an.
  • msoElementDataLabelInsideBase – zeigt Datenbeschriftungen in der inneren Basis an.
  • msoElementDataLabelOutSideEnd – zeigt Datenbeschriftungen an der äußeren Ende des Diagramms an.
  • msoElementDataLabelInsideEnd – zeigt Datenbeschriftungen an der inneren Ende des Diagramms an.

Hinzufügen einer X-Achse und eines Titels in VBA

Wir haben ein Diagramm im Arbeitsblatt, wie unten gezeigt, ausgewählt:

balkendiagramm ohne x achse

Sie können eine X-Achse und einen X-Achsentitel mit der Methode Chart.SetElement hinzufügen. Der folgende Code fügt dem Diagramm eine X-Achse und einen X-Achsentitel hinzu:

Sub XAchse_Und_XTitel_Hinzufuegen()

With ActiveChart
.SetElement msoElementPrimaryCategoryAxisShow
.SetElement msoElementPrimaryCategoryAxisTitleHorizontal
End With


End Sub

Das Ergebnis ist:

balkendiagramm x achse hinzufuegen

Hinzufügen einer Y-Achse und eines Titels in VBA

Wir haben ein Diagramm im Arbeitsblatt ausgewählt, wie unten gezeigt:

balkendiagramm ohne y achse

Sie können eine Y-Achse und einen Y-Achsentitel mithilfe der Methode Chart.SetElement hinzufügen. Der folgende Code fügt dem Diagramm eine Y-Achse und einen Y-Achsentitel hinzu:

Sub YAchse_Und_YTitel_Hinzufuegen()

With ActiveChart
.SetElement msoElementPrimaryValueAxisShow
.SetElement msoElementPrimaryValueAxisTitleHorizontal
End With
End Sub

Das Ergebnis ist:

balkendiagramm y achse und achsentitel hinzufuegen

Ändern des Zahlenformats einer Achse

Wir haben ein Diagramm im Arbeitsblatt, wie unten gezeigt, ausgewählt:

ausgewaehltes diagramm zur zahlenformataenderung

Sie können das Zahlenformat einer Achse ändern. Der folgende Code ändert das Zahlenformat der Y-Achse in Währung:

Sub Zahlenformate_Aendern()

ActiveChart.Axes(xlValue).TickLabels.NumberFormat = "€#,##0.00"

End Sub

Das Ergebnis ist:

vba zahlenformate aendern achse

Ändern der Schriftartformatierung in einem Diagramm

Wir haben das folgende Diagramm im Arbeitsblatt, wie unten gezeigt, ausgewählt:

vba ursprungsdiagramm fuer formataenderung

Sie können die Formatierung der gesamten Diagrammschriftart ändern, indem Sie auf das Schriftartobjekt verweisen und dessen Namen, Schriftstärke und Größe ändern. Der folgende Code ändert Art, Schriftschnitt und Größe der Schrift des gesamten Diagramms.

Sub SchriftFormatierung_Aendern()

With ActiveChart


.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman"
.ChartArea.Format.TextFrame2.TextRange.Font.Bold = True
.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14

End With

Das Ergebnis ist:

gesamtes diagramm formate und schriftart aendern

Löschen eines Diagramms mit VBA

Wir haben ein Diagramm im Arbeitsblatt, wie unten gezeigt, ausgewählt:

vba zieldiagram zum loeschen

Wir können den folgenden Code verwenden, um dieses Diagramm zu löschen:

Sub DasDiagrammLoeschen()

ActiveChart.Parent.Delete

End Sub

Verweis auf die ChartObjects-Sammlung

Sie können auf alle eingebetteten Diagramme in Ihrem Arbeitsblatt oder Ihrer Arbeitsmappe zugreifen, indem Sie sich auf die ChartObjects-Sammlung beziehen. Wir haben zwei Diagramme auf demselben Blatt wie unten dargestellt:

quelldiagramme fuer chartobjects sammlung

Wir werden auf die ChartObjects-Sammlung zugreifen, um den beiden Diagrammen auf dem Arbeitsblatt die gleiche Höhe und Breite zu geben, die Gitternetzlinien zu löschen, die Hintergrundfarbe gleich zu machen, die gleiche Farbe für die Zeichenflächen zu geben und die Farbe der Linien der Zeichenflächen gleich zu machen:

Sub AufAlleDiagrammeImBlattVerweisen()

Dim diag As ChartObject

For Each diag In ActiveSheet.ChartObjects
diag.Height = 144.85
diag.Width = 246.61

diag.Chart.Axes(xlValue).MajorGridlines.Delete
diag.Chart.PlotArea.Format.Fill.ForeColor.RGB = RGB(242, 242, 242)
diag.Chart.ChartArea.Format.Fill.ForeColor.RGB = RGB(234, 234, 234)
diag.Chart.PlotArea.Format.Line.ForeColor.RGB = RGB(18, 97, 172)

Next diag

End Sub

Das Ergebnis ist:

vba chartobjects sammlung

Einfügen eines Diagramms in eigenes Diagrammblatt

Wir haben den Bereich A1:B6, der die Quelldaten, wie unten dargestellt, enthält:

vba quellbereich diagrammblatt

Sie können ein Diagramm mit der Methode Charts.Add erstellen. Mit dem folgenden Code wird ein Diagramm auf eigenem Diagrammblatt erstellt:

Sub DiagramMMitEigenemBlattHinzufuegen()

Sheets("Sheet1").Range("A1:B6").Select
Charts.Add

End Sub

Das Ergebnis ist:

diagramm in eigenes blatt hinzufuegen

Sehen Sie sich einige unserer anderen Tutorials zur Diagrammerstellung an: Diagramme in Excel Erstellen eines Balkendiagramms in VBA