VBA -guide för diagram och diagram

Innehållsförteckning

Excel -diagram och grafer används för att visuellt visa data. I denna handledning kommer vi att täcka hur man använder VBA för att skapa och manipulera diagram och diagramelement.

Du kan skapa inbäddade diagram i ett kalkylblad eller diagram på egna diagramblad.

Skapa ett inbäddat diagram med VBA

Vi har intervallet A1: B4 som innehåller källdata, som visas nedan:

Du kan skapa ett diagram med metoden ChartObjects.Add. Följande kod skapar ett inbäddat diagram i kalkylbladet:

12345678 Sub CreateEmbeddedChartUsingChartObject ()Dim embeddedchart As ChartObjectStäll in embeddedchart = Sheets ("Sheet1"). ChartObjects.Add (Left: = 180, Width: = 300, Top: = 7, Height: = 200)embeddedchart.Chart.SetSourceData Source: = Sheets ("Sheet1"). Omfång ("A1: B4")Avsluta Sub

Resultatet är:

Du kan också skapa ett diagram med metoden Shapes.AddChart. Följande kod skapar ett inbäddat diagram i kalkylbladet:

12345678 Sub CreateEmbeddedChartUsingShapesAddChart ()Dim inbäddat diagram som formStäll in embeddedchart = Sheets ("Sheet1"). Shapes.AddChartembeddedchart.Chart.SetSourceData Source: = Sheets ("Sheet1"). Omfång ("A1: B4")Avsluta Sub

Ange en diagramtyp med hjälp av VBA

Vi har intervallet A1: B5 som innehåller källdata, som visas nedan:

Du kan ange en diagramtyp med egenskapen ChartType. Följande kod skapar ett cirkeldiagram i kalkylbladet eftersom egenskapen ChartType har ställts in på xlPie:

123456789 Sub SpecifyAChartType ()Dim chrt As ChartObjectStäll in chrt = Sheets ("Sheet1"). ChartObjects.Add (Left: = 180, Width: = 270, Top: = 7, Height: = 210)chrt.Chart.SetSourceData Source: = Sheets ("Sheet1"). Omfång ("A1: B5")chrt.Chart.ChartType = xlPieAvsluta Sub

Resultatet är:

Det här är några av de populära diagramtyperna som vanligtvis anges, även om det finns andra:

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

Lägga till en diagramtitel med hjälp av VBA

Vi har ett diagram valt i kalkylbladet enligt nedan:

Du måste lägga till en diagramtitel först med metoden Chart.SetElement och sedan ange texten för diagramtiteln genom att ställa in egenskapen ChartTitle.Text.

Följande kod visar hur du lägger till en diagramtitel och anger texten för titeln på det aktiva diagrammet:

123456 Sub AddingAndSettingAChartTitle ()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "Försäljningen av produkten"Avsluta Sub

Resultatet är:

Obs! Du måste först välja diagrammet för att göra det till det aktiva diagrammet för att kunna använda ActiveChart -objektet i din kod.

Ändra kartans bakgrundsfärg med VBA

Vi har ett diagram valt i kalkylbladet enligt nedan:

Du kan ändra bakgrundsfärgen för hela diagrammet genom att ställa in RGB -egenskapen för FillFormat -objektet i ChartArea -objektet. Följande kod ger diagrammet en ljusorange bakgrundsfärg:

12345 Sub AddingABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB (253, 242, 227)Avsluta Sub

Resultatet är:

Du kan också ändra bakgrundsfärgen för hela diagrammet genom att ange egenskapen ColorIndex för objektets interiör i ChartArea -objektet. Följande kod ger diagrammet en orange bakgrundsfärg:

12345 Sub AddingABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Interior.ColorIndex = 40Avsluta Sub

Resultatet är:

Obs! Med egenskapen ColorIndex kan du ange en färg baserad på ett värde från 1 till 56, hämtat från den förinställda paletten, för att se vilka värden som representerar de olika färgerna, klicka här.

Ändra färgdiagramområdets område med hjälp av VBA

Vi har ett diagram valt i kalkylbladet enligt nedan:

Du kan ändra bakgrundsfärgen för diagrammets plotyta genom att ställa in RGB -egenskapen för FillFormat -objektet för PlotArea -objektet. Följande kod ger diagramområdet en ljusgrön bakgrundsfärg:

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

Resultatet är:

Lägga till en förklaring med VBA

Vi har ett diagram valt i kalkylbladet, enligt nedan:

Du kan lägga till en förklaring med hjälp av metoden Chart.SetElement. Följande kod lägger till en förklaring till vänster om diagrammet:

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

Resultatet är:

Du kan ange legendens position på följande sätt:

  • msoElementLegendLeft - visar förklaringen till vänster i diagrammet.
  • msoElementLegendLeftOverlay - täcker förklaringen på vänster sida av diagrammet.
  • msoElementLegendRight - visar förklaringen på höger sida av diagrammet.
  • msoElementLegendRightOverlay - täcker legenden på höger sida av diagrammet.
  • msoElementLegendBottom - visar förklaringen längst ner i diagrammet.
  • msoElementLegendTop - visar förklaringen högst upp i diagrammet.

Lägga till datatiketter med VBA

Vi har ett diagram valt i kalkylbladet, enligt nedan:

Du kan lägga till datatiketter med metoden Chart.SetElement. Följande kod lägger till datatiketter i diagrammets inre ände:

12345 Sub AddingADataLabels ()ActiveChart.SetElement msoElementDataLabelInsideEndAvsluta Sub

Resultatet är:

Du kan ange hur etiketterna ska placeras på följande sätt:

  • msoElementDataLabelShow - visa datatiketter.
  • msoElementDataLabelRight - visar datatiketter till höger om diagrammet.
  • msoElementDataLabelLeft - visar datatiketter till vänster i diagrammet.
  • msoElementDataLabelTop - visar datatiketter högst upp i diagrammet.
  • msoElementDataLabelBestFit - bestämmer den bästa passformen.
  • msoElementDataLabelBottom - visar datatiketter längst ner i diagrammet.
  • msoElementDataLabelCallout - visar datatiketter som en information.
  • msoElementDataLabelCenter - visar datatiketter på mitten.
  • msoElementDataLabelInsideBase - visar datatiketter på insidan.
  • msoElementDataLabelOutSideEnd - visar datatiketter på diagrammets utsida.
  • msoElementDataLabelInsideEnd - visar datatiketter på diagrammets insida.

Lägga till en X-axel och titel i VBA

Vi har ett diagram valt i kalkylbladet, enligt nedan:

Du kan lägga till en X-axel och X-axel med hjälp av metoden Chart.SetElement. Följande kod lägger till en X-axel och en X-axel i diagrammet:

123456789 Sub AddingAnXAxisandXTitle ()Med ActiveChart.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalSluta medAvsluta Sub

Resultatet är:

Lägga till en Y-axel och titel i VBA

Vi har ett diagram valt i kalkylbladet, enligt nedan:

Du kan lägga till en Y-axel och Y-axeltitel med hjälp av metoden Chart.SetElement. Följande kod lägger till en Y-axel och Y-axeltitel till diagrammet:

1234567 Sub AddingAYAxisandYTitle ()Med ActiveChart.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalSluta medAvsluta Sub

Resultatet är:

Ändra nummerformat för en axel

Vi har ett diagram valt i kalkylbladet, enligt nedan:

Du kan ändra nummerformatet för en axel. Följande kod ändrar y-axelns talformat till valuta:

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

Resultatet är:

Ändra formateringen av teckensnittet i ett diagram

Vi har följande diagram valda i kalkylbladet enligt nedan:

Du kan ändra formateringen av hela diagramteckensnittet genom att hänvisa till teckensnittsobjektet och ändra dess namn, teckensnittsvikt och storlek. Följande kod ändrar typ, vikt och storlek på teckensnittet för hela 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 = 14Sluta med

Resultatet är:

Ta bort ett diagram med VBA

Vi har ett diagram valt i kalkylbladet, enligt nedan:

Vi kan använda följande kod för att ta bort det här diagrammet:

12345 Sub DeletingTheChart ()ActiveChart.Parent.DeleteAvsluta Sub

Med hänvisning till ChartObjects Collection

Du kan komma åt alla de inbäddade diagrammen i ditt kalkylblad eller din arbetsbok genom att hänvisa till ChartObjects -samlingen. Vi har två diagram på samma blad som visas nedan:

Vi kommer att hänvisa till ChartObjects -samlingen för att ge båda diagrammen i kalkylbladet samma höjd, bredd, radera rutnätlinjerna, göra bakgrundsfärgen densamma, ge diagrammen samma plottområdefärg och göra plottområdets radfärg samma Färg:

12345678910111213141516 Sub ReferringToAllTheChartsOnASheet ()Dim cht As ChartObjectFör varje cht i ActiveSheet.ChartObjectscht.Höjd = 144,85cht.Bredd = 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ästa kapAvsluta Sub

Resultatet är:

Infoga ett diagram på sitt eget sjökort

Vi har intervallet A1: B6 som innehåller källdata, som visas nedan:

Du kan skapa ett diagram med metoden Charts.Add. Följande kod skapar ett diagram på sitt eget sjökort:

123456 Sub InsertingAChartOnItsOwnChartSheet ()Ark ("Ark1"). Område ("A1: B6"). VäljDiagram. Lägg tillAvsluta Sub

Resultatet är:

Se några av våra andra kartstudier:

Diagram i Excel

Skapa ett stapeldiagram i VBA

wave wave wave wave wave