Excel -diagrammer og grafer bruges til visuelt at vise data. I denne vejledning vil vi dække, hvordan du bruger VBA til at oprette og manipulere diagrammer og diagramelementer.
Du kan oprette integrerede diagrammer i et regneark eller diagrammer på deres egne diagramark.
Oprettelse af et integreret diagram ved hjælp af VBA
Vi har området A1: B4, som indeholder kildedataene vist nedenfor:
Du kan oprette et diagram ved hjælp af metoden ChartObjects.Add. Følgende kode vil oprette et integreret diagram på regnearket:
12345678 | Sub CreateEmbeddedChartUsingChartObject ()Dim indlejret diagram som ChartObjectIndstil embeddedchart = Sheets ("Sheet1"). ChartObjects.Add (Venstre: = 180, Bredde: = 300, Top: = 7, Højde: = 200)embeddedchart.Chart.SetSourceData Source: = Sheets ("Sheet1"). Område ("A1: B4")Afslut Sub |
Resultatet er:
Du kan også oprette et diagram ved hjælp af metoden Shapes.AddChart. Følgende kode vil oprette et integreret diagram på regnearket:
12345678 | Sub CreateEmbeddedChartUsingShapesAddChart ()Dim indlejret diagram som formIndstil embeddedchart = Sheets ("Sheet1"). Shapes.AddChartembeddedchart.Chart.SetSourceData Source: = Sheets ("Sheet1"). Område ("A1: B4")Afslut Sub |
Angivelse af en diagramtype ved hjælp af VBA
Vi har området A1: B5, som indeholder kildedataene vist nedenfor:
Du kan angive en diagramtype ved hjælp af egenskaben ChartType. Følgende kode vil oprette et cirkeldiagram på regnearket, da ChartType -egenskaben er blevet indstillet til xlPie:
123456789 | Sub SpecifyAChartType ()Dim chrt som ChartObjectIndstil chrt = Sheets ("Sheet1"). ChartObjects.Add (Venstre: = 180, Bredde: = 270, Top: = 7, Højde: = 210)chrt.Chart.SetSourceData Source: = Sheets ("Sheet1"). Område ("A1: B5")chrt.Chart.ChartType = xlPieAfslut Sub |
Resultatet er:
Disse er nogle af de populære diagramtyper, der normalt er angivet, selvom der er andre:
- xlArea
- xlPie
- xlLine
- xlRadar
- xlXYScatter
- xlSurface
- xlBubble
- xlBarClustered
- xlColumnClustered
Tilføjelse af en diagramtitel ved hjælp af VBA
Vi har et diagram valgt i regnearket som vist herunder:
Du skal først tilføje en diagramtitel ved hjælp af metoden Chart.SetElement og derefter angive teksten i diagramtitlen ved at indstille egenskaben ChartTitle.Text.
Følgende kode viser dig, hvordan du tilføjer en diagramtitel og angiver teksten til titlen på det aktive diagram:
123456 | Sub AddingAndSettingAChartTitle ()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "Salget af produktet"Afslut Sub |
Resultatet er:
Bemærk: Du skal først vælge diagrammet for at gøre det til det aktive diagram for at kunne bruge ActiveChart -objektet i din kode.
Ændring af kortets baggrundsfarve ved hjælp af VBA
Vi har et diagram valgt i regnearket som vist herunder:
Du kan ændre baggrundsfarven på hele diagrammet ved at indstille egenskaben RGB for FillFormat -objektet i ChartArea -objektet. Følgende kode giver diagrammet en lysorange baggrundsfarve:
12345 | Sub TilføjelseABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB (253, 242, 227)Afslut Sub |
Resultatet er:
Du kan også ændre baggrundsfarven på hele diagrammet ved at indstille egenskaben ColorIndex for objektet Interior i ChartArea -objektet. Følgende kode giver diagrammet en orange baggrundsfarve:
12345 | Sub TilføjelseABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Interior.ColorIndex = 40Afslut Sub |
Resultatet er:
Bemærk: Egenskaben ColorIndex giver dig mulighed for at angive en farve baseret på en værdi fra 1 til 56, trukket fra den forudindstillede palette, for at se, hvilke værdier der repræsenterer de forskellige farver, klik her.
Ændring af farven på diagramplotområdet ved hjælp af VBA
Vi har et diagram valgt i regnearket som vist herunder:
Du kan ændre baggrundsfarven på diagrammets plotområde ved at angive egenskaben RGB for FillFormat -objektet i PlotArea -objektet. Følgende kode vil give plotområdet i diagrammet en lysegrøn baggrundsfarve:
12345 | Sub tilføjerABackgroundColorToThePlotArea ()ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB (208, 254, 202)Afslut Sub |
Resultatet er:
Tilføjelse af en forklaring ved hjælp af VBA
Vi har et diagram valgt i regnearket, som vist herunder:
Du kan tilføje en forklaring ved hjælp af Chart.SetElement -metoden. Følgende kode tilføjer en forklaring til venstre for diagrammet:
12345 | Sub AddingALegend ()ActiveChart.SetElement (msoElementLegendLeft)Afslut Sub |
Resultatet er:
Du kan angive placeringen af forklaringen på følgende måder:
- msoElementLegendLeft - viser forklaringen på venstre side af diagrammet.
- msoElementLegendLeftOverlay - overlejrer forklaringen på venstre side af diagrammet.
- msoElementLegendRight - viser forklaringen på højre side af diagrammet.
- msoElementLegendRightOverlay - overlejrer forklaringen på højre side af diagrammet.
- msoElementLegendBottom - viser forklaringen nederst på diagrammet.
- msoElementLegendTop - viser forklaringen øverst på diagrammet.
Tilføjelse af datamærker ved hjælp af VBA
Vi har et diagram valgt i regnearket, som vist herunder:
Du kan tilføje datatiketter ved hjælp af metoden Chart.SetElement. Følgende kode tilføjer datatiketter til den indvendige ende af diagrammet:
12345 | Sub AddingADataLabels ()ActiveChart.SetElement msoElementDataLabelInsideEndAfslut Sub |
Resultatet er:
Du kan angive, hvordan datatiketterne skal placeres på følgende måder:
- msoElementDataLabelShow - vis datatiketter.
- msoElementDataLabelRight - viser datatiketter til højre i diagrammet.
- msoElementDataLabelLeft - viser datatiketter til venstre i diagrammet.
- msoElementDataLabelTop - viser datatiketter øverst i diagrammet.
- msoElementDataLabelBestFit - bestemmer den bedste pasform.
- msoElementDataLabelBottom - viser datatiketter nederst i diagrammet.
- msoElementDataLabelCallout - viser datatiketter som en infomelding.
- msoElementDataLabelCenter - viser datatiketter på midten.
- msoElementDataLabelInsideBase - viser datatiketter på indersiden.
- msoElementDataLabelOutSideEnd - viser datatiketter på ydersiden af diagrammet.
- msoElementDataLabelInsideEnd - viser datatiketter på indersiden af diagrammet.
Tilføjelse af en X-akse og titel i VBA
Vi har et diagram valgt i regnearket, som vist herunder:
Du kan tilføje en X-akse og X-aksetitel ved hjælp af Chart.SetElement-metoden. Følgende kode tilføjer en X-akse og X-akse titel til diagrammet:
123456789 | Sub AddingAnXAxisandXTitle ()Med ActiveChart.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalAfslut medAfslut Sub |
Resultatet er:
Tilføjelse af en Y-akse og titel i VBA
Vi har et diagram valgt i regnearket, som vist herunder:
Du kan tilføje en Y-akse og Y-akse-titel ved hjælp af metoden Chart.SetElement. Følgende kode tilføjer en Y-akse og Y-akse titel til diagrammet:
1234567 | Sub AddingAYAxisandYTitle ()Med ActiveChart.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalAfslut medAfslut Sub |
Resultatet er:
Ændring af talformat for en akse
Vi har et diagram valgt i regnearket, som vist herunder:
Du kan ændre talformatet for en akse. Følgende kode ændrer y-aksens talformat til valuta:
12345 | Sub ChangingTheNumberFormat ()ActiveChart.Axes (xlValue) .TickLabels.NumberFormat = "$#, ## 0.00"Afslut Sub |
Resultatet er:
Ændring af formateringen af skrifttypen i et diagram
Vi har følgende diagram valgt i regnearket som vist herunder:
Du kan ændre formateringen af hele diagramfonten ved at henvise til skrifttypeobjektet og ændre dets navn, skrifttype og størrelse. Den følgende kode ændrer typen, vægten og størrelsen af skrifttypen på hele diagrammet.
12345678910 | Sub ChangingTheFontFormatting ()Med ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = True.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14Afslut med |
Resultatet er:
Sletning af et diagram ved hjælp af VBA
Vi har et diagram valgt i regnearket, som vist herunder:
Vi kan bruge følgende kode for at slette dette diagram:
12345 | Sub DeletingTheChart ()ActiveChart.Parent.DeleteAfslut Sub |
Henviser til ChartObjects Collection
Du kan få adgang til alle de integrerede diagrammer i dit regneark eller din projektmappe ved at henvise til ChartObjects -samlingen. Vi har to diagrammer på det samme ark vist nedenfor:
Vi vil referere til ChartObjects -samlingen for at give begge diagrammer på regnearket den samme højde, bredde, slette gitterlinjerne, gøre baggrundsfarven den samme, give diagrammerne den samme plotarealfarve og gøre plotområdets linjefarve den samme farve:
12345678910111213141516 | Sub ReferringToAllTheChartsOnASheet ()Dim cht som ChartObjectFor hver cht i ActiveSheet.ChartObjectshøjde = 144,85cht.Bredde = 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æste kapAfslut Sub |
Resultatet er:
Indsætte et diagram på sit eget diagramark
Vi har området A1: B6, som indeholder kildedataene vist nedenfor:
Du kan oprette et diagram ved hjælp af metoden Charts.Add. Følgende kode vil oprette et diagram på sit eget diagramark:
123456 | Sub InsertingAChartOnItsOwnChartSheet ()Ark ("Ark1"). Område ("A1: B6"). VælgDiagrammer. TilføjAfslut Sub |
Resultatet er:
Se nogle af vores andre kortlægningsvejledninger:
Diagrammer i Excel
Opret et søjlediagram i VBA