Průvodce VBA pro grafy a grafy

Obsah

K vizuálnímu zobrazení dat slouží excelové grafy a grafy. V tomto kurzu se budeme zabývat tím, jak pomocí VBA vytvářet a manipulovat s grafy a prvky grafu.

Můžete vytvářet vložené grafy v listu nebo grafy na jejich vlastních listech grafů.

Vytvoření vloženého grafu pomocí VBA

Máme rozsah A1: B4, který obsahuje zdrojová data, zobrazená níže:

Graf můžete vytvořit pomocí metody ChartObjects.Add. Následující kód vytvoří na listu vložený graf:

12345678 Sub CreateEmbeddedChartUsingChartObject ()Dim embeddedchart As ChartObjectNastavit vložený graf = Listy ("List1"). ChartObjects.Add (Vlevo: = 180, Šířka: = 300, Nahoře: = 7, Výška: = 200)embeddedchart.Chart.SetSourceData Zdroj: = Listy ("List1"). Rozsah ("A1: B4")End Sub

Výsledek je:

Můžete také vytvořit graf pomocí metody Shapes.AddChart. Následující kód vytvoří na listu vložený graf:

12345678 Sub CreateEmbeddedChartUsingShapesAddChart ()Dim embeddedchart As ShapeNastavit embeddedchart = Sheets ("Sheet1"). Shapes.AddChartembeddedchart.Chart.SetSourceData Zdroj: = Listy ("List1"). Rozsah ("A1: B4")End Sub

Určení typu grafu pomocí VBA

Máme rozsah A1: B5, který obsahuje níže uvedená zdrojová data:

Typ grafu můžete určit pomocí vlastnosti ChartType. Následující kód vytvoří výsečový graf na listu, protože vlastnost ChartType byla nastavena na xlPie:

123456789 Sub SpecifyAChartType ()Dim chrt As ChartObjectNastavit chrt = Listy ("List1"). ChartObjects.Add (Vlevo: = 180, Šířka: = 270, Nahoře: = 7, Výška: = 210)chrt.Chart.SetSourceData Zdroj: = Listy ("List1"). Rozsah ("A1: B5")chrt.Chart.ChartType = xlPieEnd Sub

Výsledek je:

Toto jsou některé z oblíbených typů grafů, které jsou obvykle zadávány, i když existují i ​​jiné:

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

Přidání názvu grafu pomocí VBA

V listu jsme vybrali graf, jak je znázorněno níže:

Nejprve musíte přidat název grafu pomocí metody Chart.SetElement a poté určit text názvu grafu nastavením vlastnosti ChartTitle.Text.

Následující kód ukazuje, jak přidat název grafu a určit text názvu aktivního grafu:

123456 Sub AddingAndSettingAChartTitle ()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "Prodej produktu"End Sub

Výsledek je:

Poznámka: Nejprve musíte vybrat graf, aby se stal aktivním grafem, abyste mohli ve svém kódu používat objekt ActiveChart.

Změna barvy pozadí grafu pomocí VBA

V listu jsme vybrali graf, jak je znázorněno níže:

Barvu pozadí celého grafu můžete změnit nastavením vlastnosti RGB objektu FillFormat objektu ChartArea. Následující kód dodá grafu světle oranžovou barvu pozadí:

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

Výsledek je:

Barvu pozadí celého grafu můžete také změnit nastavením vlastnosti ColorIndex objektu Interiér objektu ChartArea. Následující kód dodá grafu oranžovou barvu pozadí:

12345 SubAddingABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Interior.ColorIndex = 40End Sub

Výsledek je:

Poznámka: Vlastnost ColorIndex vám umožňuje určit barvu na základě hodnoty od 1 do 56, nakreslenou z přednastavené palety, abyste zjistili, které hodnoty představují různé barvy, klikněte sem.

Změna barvy oblasti grafu grafu pomocí VBA

V listu jsme vybrali graf, jak je znázorněno níže:

Barvu pozadí pouze oblasti grafu můžete změnit nastavením vlastnosti RGB objektu FillFormat objektu PlotArea. Následující kód dodá oblasti grafu světle zelenou barvu pozadí:

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

Výsledek je:

Přidání legendy pomocí VBA

V listu jsme vybrali graf, jak je uvedeno níže:

Legendu můžete přidat pomocí metody Chart.SetElement. Následující kód přidá legendu nalevo od grafu:

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

Výsledek je:

Pozici legendy můžete určit následujícími způsoby:

  • msoElementLegendLeft - zobrazí legendu na levé straně grafu.
  • msoElementLegendLeftOverlay - překrývá legendu na levé straně grafu.
  • msoElementLegendRight - zobrazí legendu na pravé straně grafu.
  • msoElementLegendRightOverlay - překrývá legendu na pravé straně grafu.
  • msoElementLegendBottom - zobrazí legendu v dolní části grafu.
  • msoElementLegendTop - zobrazí legendu v horní části grafu.

Přidávání datových štítků pomocí VBA

V listu jsme vybrali graf, jak je uvedeno níže:

Datové popisky můžete přidat pomocí metody Chart.SetElement. Následující kód přidá popisky dat na vnitřní konec grafu:

12345 SubAddingADataLabels ()ActiveChart.SetElement msoElementDataLabelInsideEndEnd Sub

Výsledek je:

Způsob umístění štítků s údaji můžete určit následujícími způsoby:

  • msoElementDataLabelShow - zobrazení popisků dat.
  • msoElementDataLabelRight - zobrazuje popisky dat napravo od grafu.
  • msoElementDataLabelLeft - zobrazuje popisky dat v levé části grafu.
  • msoElementDataLabelTop - zobrazuje popisky dat v horní části grafu.
  • msoElementDataLabelBestFit - určuje nejvhodnější.
  • msoElementDataLabelBottom - zobrazuje popisky dat v dolní části grafu.
  • msoElementDataLabelCallout - zobrazuje popisky dat jako popisek.
  • msoElementDataLabelCenter - ve středu zobrazuje popisky dat.
  • msoElementDataLabelInsideBase - zobrazuje popisky dat na vnitřní základně.
  • msoElementDataLabelOutSideEnd - zobrazí popisky dat na vnějším konci grafu.
  • msoElementDataLabelInsideEnd - zobrazí popisky dat na vnitřním konci grafu.

Přidání osy X a názvu ve VBA

V listu jsme vybrali graf, jak je znázorněno níže:

Název osy X a osy X můžete přidat pomocí metody Chart.SetElement. Následující kód přidá do grafu název osy X a osy X:

123456789 SubAddingAnXAxisandXTitle ()S ActiveChart.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalKonec sEnd Sub

Výsledek je:

Přidání osy Y a názvu ve VBA

V listu jsme vybrali graf, jak je znázorněno níže:

Název osy Y a osy Y můžete přidat pomocí metody Chart.SetElement. Následující kód přidá do grafu název osy Y a osy Y:

1234567 Dílčí přidáníAYAxisandYTitle ()S ActiveChart.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalKonec sEnd Sub

Výsledek je:

Změna formátu čísla osy

V listu jsme vybrali graf, jak je znázorněno níže:

Můžete změnit formát čísel osy. Následující kód mění formát čísla osy y na měnu:

12345 Dílčí změnaTheNumberFormat ()ActiveChart.Axes (xlValue) .TickLabels.NumberFormat = "$#, ## 0,00"End Sub

Výsledek je:

Změna formátování písma v grafu

V listu jsme vybrali následující graf, jak je znázorněno níže:

Formátování celého písma grafu můžete změnit odkazem na objekt písma a změnou jeho názvu, hmotnosti a velikosti písma. Následující kód mění typ, váhu a velikost písma celého grafu.

12345678910 Dílčí změnaTheFontFormatting ()S ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = True.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14Konec s

Výsledek je:

Odstranění grafu pomocí VBA

V listu jsme vybrali graf, jak je uvedeno níže:

K odstranění tohoto grafu můžeme použít následující kód:

12345 Dílčí mazáníTheChart ()ActiveChart.Parent.DeleteEnd Sub

S odkazem na kolekci ChartObjects

Ke všem vloženým grafům v listu nebo sešitu můžete přistupovat podle kolekce ChartObjects. Máme dva grafy na stejném listu zobrazené níže:

Budeme odkazovat na kolekci ChartObjects, abychom dali oběma grafům na listu stejnou výšku, šířku, odstranili mřížky, vytvořili stejnou barvu pozadí, dali grafům stejnou barvu oblasti vykreslení a aby barva čáry oblasti vykreslení byla stejná barva:

12345678910111213141516 Dílčí doporučeníToAllTheChartsOnASheet ()Dim cht As ChartObjectPro každý cht v ActiveSheet.ChartObjectscht.Height = 144,85cht.Width = 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)Další chtEnd Sub

Výsledek je:

Vložení grafu na vlastní list grafu

Máme rozsah A1: B6, který obsahuje zdrojová data, zobrazená níže:

Graf můžete vytvořit pomocí metody Charts.Add. Následující kód vytvoří graf na vlastním listu grafu:

123456 Dílčí vkládáníAChartOnItsOwnChartSheet ()Listy („List1“). Rozsah („A1: B6“). VyberteGrafy. PřidatEnd Sub

Výsledek je:

Podívejte se na některé z našich dalších návodů k vytváření grafů:

Grafy v Excelu

Vytvořte pruhový graf ve VBA

wave wave wave wave wave