VBA-Leitfaden für Diagramme und Grafiken

Inhaltsverzeichnis

Excel-Diagramme und -Diagramme werden verwendet, um Daten visuell anzuzeigen. In diesem Tutorial erfahren Sie, wie Sie mit VBA Diagramme und Diagrammelemente erstellen und bearbeiten.

Sie können eingebettete Diagramme in einem Arbeitsblatt oder Diagramme auf eigenen Diagrammblättern erstellen.

Erstellen eines eingebetteten Diagramms mit VBA

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

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

12345678 Unter CreateEmbeddedChartUsingChartObject()Eingebettetes Diagramm als ChartObject dimmenSet embeddedchart = Sheets("Sheet1").ChartObjects.Add(Left:=180, Breite:=300, Oben:=7, Höhe:=200)embeddedchart.Chart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B4")End Sub

Das Ergebnis ist:

Sie können ein Diagramm auch mit der Shapes.AddChart-Methode erstellen. Der folgende Code erstellt ein eingebettetes Diagramm auf dem Arbeitsblatt:

12345678 Sub CreateEmbeddedChartUsingShapesAddChart()Eingebettetes Diagramm als Form dimmenSet embeddedchart = Sheets("Sheet1").Shapes.AddChartembeddedchart.Chart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B4")End Sub

Angeben eines Diagrammtyps mit VBA

Wir haben den Bereich A1:B5, der die Quelldaten enthält, wie unten gezeigt:

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

123456789 UnterangebenAChartType()Dim chrt As ChartObjectSet chrt = Sheets("Sheet1").ChartObjects.Add(Left:=180, Breite:=270, Oben:=7, Höhe:=210)chrt.Chart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B5")chrt.Chart.ChartType = xlPieEnd Sub

Das Ergebnis ist:

Dies sind einige der beliebtesten Diagrammtypen, die normalerweise angegeben werden, obwohl es noch andere gibt:

  • xlArea
  • xlPie
  • xlLine
  • xlRadar
  • xlXYScatter
  • xlOberfläche
  • xlBubble
  • xlBarClustered
  • xlColumnClustered

Hinzufügen eines Diagrammtitels mit VBA

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

Sie müssen zuerst einen Diagrammtitel mit der Methode Chart.SetElement 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 Text des Titels des aktiven Diagramms angeben:

123456 Sub AddingAndSettingAChartTitle()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "Der Verkauf des Produkts"End Sub

Das Ergebnis ist:

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

Ändern der Diagrammhintergrundfarbe mit VBA

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

Sie können die Hintergrundfarbe des gesamten Diagramms ändern, indem Sie die RGB-Eigenschaft des FillFormat-Objekts des ChartArea-Objekts festlegen. Der folgende Code verleiht dem Diagramm eine hellorange Hintergrundfarbe:

12345 Sub HinzufügenABackgroundColorToTheChartArea()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB(253, 242, 227)End Sub

Das Ergebnis ist:

Sie können auch die Hintergrundfarbe des gesamten Diagramms ändern, indem Sie die ColorIndex-Eigenschaft des Interior-Objekts des ChartArea-Objekts festlegen. Der folgende Code gibt dem Diagramm eine orangefarbene Hintergrundfarbe:

12345 Sub HinzufügenABackgroundColorToTheChartArea()ActiveChart.ChartArea.Interior.ColorIndex = 40End Sub

Das Ergebnis ist:

Hinweis: Mit der Eigenschaft ColorIndex können Sie eine Farbe basierend auf einem Wert von 1 bis 56 angeben, der aus der voreingestellten Palette gezogen wird. Klicken Sie hier, um zu sehen, welche Werte die verschiedenen Farben darstellen.

Ändern der Farbe des Diagramm-Plotbereichs mit VBA

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

Sie können die Hintergrundfarbe nur des Plotbereichs des Diagramms ändern, indem Sie die RGB-Eigenschaft des FillFormat-Objekts des PlotArea-Objekts festlegen. Der folgende Code gibt dem Plotbereich des Diagramms eine hellgrüne Hintergrundfarbe:

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

Das Ergebnis ist:

Hinzufügen einer Legende mit VBA

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

Sie können eine Legende mithilfe der Chart.SetElement-Methode hinzufügen. Der folgende Code fügt links neben dem Diagramm eine Legende hinzu:

12345 Sub AddingALegend()ActiveChart.SetElement (msoElementLegendLeft)End Sub

Das Ergebnis ist:

Sie können die Position der Legende wie folgt 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 oben im Diagramm an.

Hinzufügen von Datenlabels mit VBA

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

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

12345 Unter HinzufügenADataLabels()ActiveChart.SetElement msoElementDataLabelInsideEndEnd Sub

Das Ergebnis ist:

Sie können die Position der Datenbeschriftungen wie folgt festlegen:

  • msoElementDataLabelShow - Datenbeschriftungen anzeigen.
  • msoElementDataLabelRight - zeigt Datenbeschriftungen auf der rechten Seite des Diagramms an.
  • msoElementDataLabelLeft - zeigt Datenbeschriftungen auf der linken Seite des Diagramms an.
  • msoElementDataLabelTop - zeigt Datenbeschriftungen oben im Diagramm an.
  • msoElementDataLabelBestFit - bestimmt die beste Anpassung.
  • msoElementDataLabelBottom - zeigt Datenbeschriftungen am unteren Rand des Diagramms an.
  • msoElementDataLabelCallout - zeigt Datenbeschriftungen als Callout an.
  • msoElementDataLabelCenter - zeigt Datenbeschriftungen in der Mitte an.
  • msoElementDataLabelInsideBase - zeigt Datenbeschriftungen auf der inneren Basis an.
  • msoElementDataLabelOutSideEnd - zeigt Datenbeschriftungen am äußeren Ende des Diagramms an.
  • msoElementDataLabelInsideEnd - zeigt Datenbeschriftungen am inneren Ende des Diagramms an.

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

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

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

123456789 Sub AddingAnXAxisandXTitle()Mit ActiveChart.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalEnde mitEnd Sub

Das Ergebnis ist:

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

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

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

1234567 Unter Hinzufügen von AYAxisundYTitle()Mit ActiveChart.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalEnde mitEnd Sub

Das Ergebnis ist:

Ändern des Zahlenformats einer Achse

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

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

12345 Sub ChangingTheNumberFormat()ActiveChart.Axes(xlValue).TickLabels.NumberFormat = "$#,##0.00"End Sub

Das Ergebnis ist:

Ändern der Formatierung der Schriftart in einem Diagramm

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

Sie können die Formatierung der gesamten Diagrammschriftart ändern, indem Sie auf das Schriftobjekt verweisen und dessen Namen, Schriftstärke und Größe ändern. Der folgende Code ändert Typ, Gewicht und Größe der Schriftart des gesamten Diagramms.

12345678910 Sub ChangingTheFontFormatting()Mit ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = True.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14Ende mit

Das Ergebnis ist:

Löschen eines Diagramms mit VBA

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

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

12345 Sub DeletingTheChart()ActiveChart.Parent.DeleteEnd Sub

Verweis auf die ChartObjects-Sammlung

Sie können auf alle eingebetteten Diagramme in Ihrem Arbeitsblatt oder Ihrer Arbeitsmappe zugreifen, indem Sie auf die ChartObjects-Auflistung verweisen. Wir haben zwei Diagramme auf demselben Blatt, das unten gezeigt wird:

Wir beziehen uns auf die ChartObjects-Sammlung, um beiden Diagrammen auf dem Arbeitsblatt die gleiche Höhe und Breite zu geben, die Gitterlinien zu löschen, die Hintergrundfarbe gleich zu machen, den Diagrammen die gleiche Plotbereichsfarbe zu geben und die Plotbereichslinienfarbe gleich zu machen Farbe:

12345678910111213141516 Sub ReferenceToAllTheChartsOnASheet()Dim cht As ChartObjectFür jedes cht in ActiveSheet.ChartObjectscht.Höhe = 144,85cht.Breite = 246.61cht.Chart.Axes(xlValue).MajorGridlines.Deletecht.Chart.PlotArea.Format.Fill.ForeColor.RGB = RGB(242, 242, 242)cht.Chart.ChartArea.Format.Fill.ForeColor.RGB = RGB(234, 234, 234)cht.Chart.PlotArea.Format.Line.ForeColor.RGB = RGB(18, 97, 172)Nächste chtEnd Sub

Das Ergebnis ist:

Einfügen eines Diagramms in ein eigenes Diagrammblatt

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

Sie können ein Diagramm mit der Methode Charts.Add erstellen. Der folgende Code erstellt ein Diagramm auf einem eigenen Diagrammblatt:

123456 Unter EinfügenAChartOnItsOwnChartSheet()Sheets("Sheet1").Range("A1:B6").SelectDiagramme.HinzufügenEnd Sub

Das Ergebnis ist:

Sehen Sie sich einige unserer anderen Charting-Tutorials an:

Diagramme in Excel

Erstellen Sie ein Balkendiagramm in VBA

wave wave wave wave wave