VBA-gids voor grafieken en diagrammen

Inhoudsopgave

Excel-diagrammen en grafieken worden gebruikt om gegevens visueel weer te geven. In deze zelfstudie gaan we in op het gebruik van VBA om grafieken en grafiekelementen te maken en te manipuleren.

U kunt ingesloten grafieken in een werkblad of grafieken op hun eigen grafiekbladen maken.

Een ingesloten diagram maken met VBA

We hebben het bereik A1:B4 dat de brongegevens bevat, zoals hieronder weergegeven:

U kunt een grafiek maken met de methode ChartObjects.Add. Met de volgende code wordt een ingesloten diagram op het werkblad gemaakt:

12345678 Sub CreateEmbeddedChartUsingChartObject()Ingesloten diagram dimmen als ChartObjectSet embeddedchart = Sheets("Blad1").ChartObjects.Add(Links:=180, Breedte:=300, Boven:=7, Hoogte:=200)embeddedchart.Chart.SetSourceData Source:=Sheets("Blad1").Range("A1:B4")Einde sub

Het resultaat is:

U kunt ook een grafiek maken met behulp van de Shapes.AddChart-methode. Met de volgende code wordt een ingesloten diagram op het werkblad gemaakt:

12345678 Sub CreateEmbeddedChartUsingShapesAddChart()Ingesloten diagram dimmen als vormSet embeddedchart = Sheets("Blad1").Vormen.AddChartembeddedchart.Chart.SetSourceData Source:=Sheets("Blad1").Range("A1:B4")Einde sub

Een grafiektype specificeren met VBA

We hebben het bereik A1:B5 dat de brongegevens bevat, zoals hieronder weergegeven:

U kunt een diagramtype opgeven met behulp van de eigenschap ChartType. Met de volgende code wordt een cirkeldiagram op het werkblad gemaakt, aangezien de eigenschap ChartType is ingesteld op xlPie:

123456789 Sub SpecificeerAchartType()Dim chrt As ChartObjectStel chrt = Sheets ("Blad1") in. ChartObjects.Add (Links:=180, Breedte:=270, Boven:=7, Hoogte:=210)chrt.Chart.SetSourceData Source:=Sheets("Blad1").Range("A1:B5")chrt.Chart.ChartType = xlPieEinde sub

Het resultaat is:

Dit zijn enkele van de populaire grafiektypen die meestal worden gespecificeerd, hoewel er andere zijn:

  • xlArea
  • xlPie
  • xlLine
  • xlRadar
  • xlXYScatter
  • xlSurface
  • xlBubble
  • xlBarGeclusterd
  • xlKolomGeclusterd

Een grafiektitel toevoegen met VBA

We hebben een grafiek geselecteerd in het werkblad zoals hieronder weergegeven:

U moet eerst een grafiektitel toevoegen met de methode Chart.SetElement en vervolgens de tekst van de grafiektitel specificeren door de eigenschap ChartTitle.Text in te stellen.

De volgende code laat zien hoe u een grafiektitel toevoegt en de tekst van de titel van de actieve grafiek specificeert:

123456 Sub AddingAndSettingAChartTitle()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "De verkoop van het product"Einde sub

Het resultaat is:

Opmerking: u moet eerst de grafiek selecteren om er de actieve grafiek van te maken om het ActiveChart-object in uw code te kunnen gebruiken.

De achtergrondkleur van de grafiek wijzigen met VBA

We hebben een grafiek geselecteerd in het werkblad zoals hieronder weergegeven:

U kunt de achtergrondkleur van het hele diagram wijzigen door de eigenschap RGB van het FillFormat-object van het ChartArea-object in te stellen. De volgende code geeft de grafiek een lichtoranje achtergrondkleur:

12345 Sub toevoegenABackgroundColorToTheChartArea()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB (253, 242, 227)Einde sub

Het resultaat is:

U kunt ook de achtergrondkleur van het hele diagram wijzigen door de eigenschap ColorIndex van het Interior-object van het ChartArea-object in te stellen. De volgende code geeft de grafiek een oranje achtergrondkleur:

12345 Sub toevoegenABackgroundColorToTheChartArea()ActiveChart.ChartArea.Interior.ColorIndex = 40Einde sub

Het resultaat is:

Opmerking: Met de eigenschap ColorIndex kunt u een kleur specificeren op basis van een waarde van 1 tot 56, getekend uit het vooraf ingestelde palet, om te zien welke waarden de verschillende kleuren vertegenwoordigen, klik hier.

De kleur van het kaartplotgebied wijzigen met VBA

We hebben een grafiek geselecteerd in het werkblad zoals hieronder weergegeven:

U kunt de achtergrondkleur van alleen het plotgebied van het diagram wijzigen door de eigenschap RGB van het FillFormat-object van het PlotArea-object in te stellen. De volgende code geeft het plotgebied van de grafiek een lichtgroene achtergrondkleur:

12345 Sub toevoegenABackgroundColorToThePlotArea()ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB(208, 254, 202)Einde sub

Het resultaat is:

Een legende toevoegen met VBA

We hebben een grafiek geselecteerd in het werkblad, zoals hieronder weergegeven:

U kunt een legenda toevoegen met de methode Chart.SetElement. De volgende code voegt een legenda toe aan de linkerkant van de grafiek:

12345 Sub AddingALegend()ActiveChart.SetElement (msoElementLegendLeft)Einde sub

Het resultaat is:

U kunt de positie van de legenda op de volgende manieren specificeren:

  • msoElementLegendLeft - geeft de legenda aan de linkerkant van de grafiek weer.
  • msoElementLegendLeftOverlay - overlapt de legenda aan de linkerkant van de grafiek.
  • msoElementLegendRight - geeft de legenda aan de rechterkant van de grafiek weer.
  • msoElementLegendRightOverlay - overlapt de legenda aan de rechterkant van de grafiek.
  • msoElementLegendBottom - geeft de legenda onder aan de grafiek weer.
  • msoElementLegendTop - geeft de legenda bovenaan de grafiek weer.

Gegevenslabels toevoegen met VBA

We hebben een grafiek geselecteerd in het werkblad, zoals hieronder weergegeven:

U kunt gegevenslabels toevoegen met de methode Chart.SetElement. De volgende code voegt gegevenslabels toe aan de binnenkant van de grafiek:

12345 SubADataLabels() toevoegenActiveChart.SetElement msoElementDataLabelInsideEndEinde sub

Het resultaat is:

U kunt op de volgende manieren specificeren hoe de gegevenslabels worden gepositioneerd:

  • msoElementDataLabelShow - gegevenslabels weergeven.
  • msoElementDataLabelRight - geeft gegevenslabels aan de rechterkant van de grafiek weer.
  • msoElementDataLabelLeft - geeft gegevenslabels aan de linkerkant van de grafiek weer.
  • msoElementDataLabelTop - geeft gegevenslabels boven aan de grafiek weer.
  • msoElementDataLabelBestFit - bepaalt de beste pasvorm.
  • msoElementDataLabelBottom - geeft gegevenslabels onder aan de grafiek weer.
  • msoElementDataLabelCallout - geeft gegevenslabels weer als een toelichting.
  • msoElementDataLabelCenter - geeft gegevenslabels in het midden weer.
  • msoElementDataLabelInsideBase - geeft gegevenslabels aan de binnenkant van de basis weer.
  • msoElementDataLabelOutSideEnd - geeft gegevenslabels weer aan de buitenkant van de grafiek.
  • msoElementDataLabelInsideEnd - geeft gegevenslabels aan de binnenkant van de grafiek weer.

Een X-as en titel toevoegen in VBA

We hebben een grafiek geselecteerd in het werkblad, zoals hieronder weergegeven:

U kunt een X-as en X-as titel toevoegen met behulp van de Chart.SetElement methode. De volgende code voegt een X-as en X-as titel toe aan het diagram:

123456789 Sub toevoegenAnXAxisandXTitle()Met ActiveChart.SetElement msoElementPrimaryCategorieAxisShow.SetElement msoElementPrimaryCategorieAsTitelHorizontaalEindigt metEinde sub

Het resultaat is:

Een Y-as en titel toevoegen in VBA

We hebben een grafiek geselecteerd in het werkblad, zoals hieronder weergegeven:

U kunt een titel voor de Y-as en de Y-as toevoegen met de methode Chart.SetElement. De volgende code voegt een titel voor de Y-as en de Y-as toe aan het diagram:

1234567 Sub toevoegen van AYAxisandYTitle()Met ActiveChart.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaireWaardeAsTitelHorizontaalEindigt metEinde sub

Het resultaat is:

De getalnotatie van een as wijzigen

We hebben een grafiek geselecteerd in het werkblad, zoals hieronder weergegeven:

U kunt de getalnotatie van een as wijzigen. De volgende code verandert de getalnotatie van de y-as in valuta:

12345 Sub WijzigenTheNumberFormat()ActiveChart.Axes(xlValue).TickLabels.NumberFormat = "$#,##0.00"Einde sub

Het resultaat is:

De opmaak van het lettertype in een diagram wijzigen

We hebben de volgende grafiek geselecteerd in het werkblad zoals hieronder weergegeven:

U kunt de opmaak van het volledige diagramlettertype wijzigen door naar het lettertypeobject te verwijzen en de naam, het lettertype en de grootte te wijzigen. De volgende code verandert het type, het gewicht en de grootte van het lettertype van de hele grafiek.

12345678910 Sub WijzigenTheFontFormatting()Met ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = True.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14Eindigt met

Het resultaat is:

Een diagram verwijderen met VBA

We hebben een grafiek geselecteerd in het werkblad, zoals hieronder weergegeven:

We kunnen de volgende code gebruiken om deze grafiek te verwijderen:

12345 Sub verwijderenTheChart()ActiveChart.Ouder.VerwijderenEinde sub

Verwijzend naar de ChartObjects-collectie

U kunt toegang krijgen tot alle ingesloten grafieken in uw werkblad of werkmap door te verwijzen naar de ChartObjects-verzameling. We hebben twee grafieken op hetzelfde blad hieronder:

We zullen verwijzen naar de ChartObjects-collectie om beide grafieken op het werkblad dezelfde hoogte en breedte te geven, de rasterlijnen te verwijderen, de achtergrondkleur hetzelfde te maken, de grafieken dezelfde kleur van het plotgebied te geven en de kleur van de lijn van het plotgebied hetzelfde te maken kleur:

12345678910111213141516 Sub VerwijzendToAllTheChartsOnASheet()Dim cht As ChartObjectVoor elke cht in ActiveSheet.ChartObjectscht.Hoogte = 144.85cht.Breedte = 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)volgende chtEinde sub

Het resultaat is:

Een kaart op zijn eigen kaartblad invoegen

We hebben het bereik A1:B6 dat de brongegevens bevat, hieronder weergegeven:

U kunt een diagram maken met de methode Charts.Add. De volgende code maakt een grafiek op zijn eigen grafiekblad:

123456 Sub invoegenAChartOnItsOwnChartSheet()Bladen ("Blad1"). Bereik ("A1:B6"). SelecteerGrafieken.ToevoegenEinde sub

Het resultaat is:

Bekijk enkele van onze andere zelfstudies over grafieken:

Grafieken in Excel

Maak een staafdiagram in VBA

wave wave wave wave wave