Sprievodca VBA pre grafy a grafy

Obsah

Na vizuálne zobrazenie údajov sa používajú grafy a grafy programu Excel. V tomto tutoriále sa budeme zaoberať tým, ako používať VBA na vytváranie a manipuláciu s grafmi a prvkami grafov.

Môžete vytvoriť vložené grafy v pracovnom hárku alebo grafy na ich vlastných listoch grafov.

Vytvorenie vloženej schémy pomocou VBA

Máme rozsah A1: B4, ktorý obsahuje zdrojové údaje, uvedené nižšie:

Graf môžete vytvoriť pomocou metódy ChartObjects.Add. Nasledujúci kód vytvorí vložený graf v pracovnom hárku:

12345678 Sub CreateEmbeddedChartUsingChartObject ()Dim embeddedchart As ChartObjectNastaviť vložený graf = hárky ("list1"). ChartObjects.Add (vľavo: = 180, šírka: = 300, hore: = 7, výška: = 200)embeddedchart.Chart.SetSourceData Zdroj: = Listy ("List1"). Rozsah ("A1: B4")Koniec pod

Výsledkom je:

Graf môžete vytvoriť aj pomocou metódy Shapes.AddChart. Nasledujúci kód vytvorí vložený graf v pracovnom hárku:

12345678 Sub CreateEmbeddedChartUsingShapesAddChart ()Dim embeddedchart As ShapeNastaviť vložený graf = hárky ("list1"). Shapes.AddChartembeddedchart.Chart.SetSourceData Zdroj: = Listy ("List1"). Rozsah ("A1: B4")Koniec pod

Zadanie typu grafu pomocou VBA

Máme rozsah A1: B5, ktorý obsahuje zdrojové údaje, uvedené nižšie:

Typ grafu môžete určiť pomocou vlastnosti ChartType. Nasledujúci kód vytvorí v pracovnom hárku koláčový graf, pretože vlastnosť ChartType bola nastavená na xlPie:

123456789 PodšpecifikovaťAChartType ()Dim chrt As ChartObjectNastaviť chrt = Listy („List1“). ChartObjects.Add (Vľavo: = 180, Šírka: = 270, Hore: = 7, Výška: = 210)chrt.Chart.SetSourceData Zdroj: = Listy ("List1"). Rozsah ("A1: B5")chrt.Chart.ChartType = xlPieKoniec pod

Výsledkom je:

Toto sú niektoré z obľúbených typov grafov, ktoré sú zvyčajne špecifikované, aj keď existujú aj ďalšie:

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

Pridanie názvu grafu pomocou VBA

V pracovnom hárku sme vybrali graf, ako je uvedené nižšie:

Najprv musíte pridať názov grafu pomocou metódy Chart.SetElement a potom zadať text názvu grafu nastavením vlastnosti ChartTitle.Text.

Nasledujúci kód ukazuje, ako pridať názov grafu a určiť text názvu aktívneho grafu:

123456 SubAddingAndSettingAChartTitle ()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "Predaj produktu"Koniec pod

Výsledkom je:

Poznámka: Najprv musíte vybrať graf, aby bol aktívny, aby ste vo svojom kóde mohli používať objekt ActiveChart.

Zmena farby pozadia grafu pomocou VBA

V pracovnom hárku sme vybrali graf, ako je uvedené nižšie:

Farbu pozadia celého grafu môžete zmeniť nastavením vlastnosti RGB objektu FillFormat objektu ChartArea. Nasledujúci kód dodá grafu svetlo oranžovú farbu pozadia:

12345 SubaddingABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB (253, 242, 227)Koniec pod

Výsledkom je:

Farbu pozadia celého grafu môžete tiež zmeniť nastavením vlastnosti ColorIndex objektu Interiér objektu ChartArea. Nasledujúci kód dodá grafu oranžovú farbu pozadia:

12345 SubaddingABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Interior.ColorIndex = 40Koniec pod

Výsledkom je:

Poznámka: Vlastnosť ColorIndex vám umožňuje určiť farbu na základe hodnoty od 1 do 56, nakreslenú z predvolenej palety, aby ste zistili, ktoré hodnoty predstavujú rôzne farby, kliknite sem.

Zmena farby oblasti grafu na grafe pomocou VBA

V pracovnom hárku sme vybrali graf, ako je uvedené nižšie:

Farbu pozadia iba oblasti grafu môžete zmeniť nastavením vlastnosti RGB objektu FillFormat objektu PlotArea. Nasledujúci kód dodá oblasti grafu svetlo zelenú farbu pozadia:

12345 SubaddingABackgroundColorToThePlotArea ()ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB (208, 254, 202)Koniec pod

Výsledkom je:

Pridanie legendy pomocou VBA

V pracovnom hárku sme vybrali graf, ako je uvedené nižšie:

Legendu môžete pridať pomocou metódy Chart.SetElement. Nasledujúci kód pridáva legendu naľavo od grafu:

12345 SubaddingAlgend ()ActiveChart.SetElement (msoElementLegendLeft)Koniec pod

Výsledkom je:

Pozíciu legendy môžete určiť nasledujúcimi spôsobmi:

  • msoElementLegendLeft - zobrazí legendu na ľavej strane grafu.
  • msoElementLegendLeftOverlay - prekrýva legendu na ľavej strane grafu.
  • msoElementLegendRight - zobrazí legendu na pravej strane grafu.
  • msoElementLegendRightOverlay - prekrýva legendu na pravej strane grafu.
  • msoElementLegendBottom - zobrazí legendu v spodnej časti grafu.
  • msoElementLegendTop - zobrazí legendu v hornej časti grafu.

Pridávanie údajových štítkov pomocou VBA

V pracovnom hárku sme vybrali graf, ako je uvedené nižšie:

Štítky údajov môžete pridať pomocou metódy Chart.SetElement. Nasledujúci kód pridá štítky údajov na vnútorný koniec grafu:

12345 SubaddingADataLabels ()ActiveChart.SetElement msoElementDataLabelInsideEndKoniec pod

Výsledkom je:

Spôsob umiestnenia štítkov s údajmi môžete určiť nasledujúcimi spôsobmi:

  • msoElementDataLabelShow - zobrazenie štítkov údajov.
  • msoElementDataLabelRight - zobrazuje štítky s údajmi napravo od grafu.
  • msoElementDataLabelLeft - zobrazuje štítky s údajmi v ľavej časti grafu.
  • msoElementDataLabelTop - zobrazuje štítky s údajmi v hornej časti grafu.
  • msoElementDataLabelBestFit - určuje najvhodnejšie.
  • msoElementDataLabelBottom - zobrazuje štítky s údajmi v spodnej časti grafu.
  • msoElementDataLabelCallout - zobrazuje menovky údajov ako popis.
  • msoElementDataLabelCenter - zobrazuje štítky s údajmi v strede.
  • msoElementDataLabelInsideBase - zobrazuje štítky s údajmi na vnútornej strane základne.
  • msoElementDataLabelOutSideEnd - zobrazuje štítky s údajmi na vonkajšom konci grafu.
  • msoElementDataLabelInsideEnd - zobrazuje štítky s údajmi na vnútornom konci grafu.

Pridanie osi X a názvu vo VBA

V pracovnom hárku sme vybrali graf, ako je uvedené nižšie:

Nadpis osi X a osi X môžete pridať pomocou metódy Chart.SetElement. Nasledujúci kód pridá do grafu názov osi X a osi X:

123456789 SubAddingAnXAxisandXTitle ()S programom ActiveChart.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalUkončiť sKoniec pod

Výsledkom je:

Pridanie osi Y a názvu vo VBA

V pracovnom hárku sme vybrali graf, ako je uvedené nižšie:

Nadpis osi Y a osi Y môžete pridať pomocou metódy Chart.SetElement. Nasledujúci kód pridáva do grafu názov osi Y a osi Y:

1234567 Doplňujúce pridanieAYAxisandYTitle ()S programom ActiveChart.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalUkončiť sKoniec pod

Výsledkom je:

Zmena formátu čísla osi

V pracovnom hárku sme vybrali graf, ako je uvedené nižšie:

Formát čísla osi môžete zmeniť. Nasledujúci kód mení formát čísla osi y na menu:

12345 Vedľajšia zmenaTheNumberFormat ()ActiveChart.Axes (xlValue) .TickLabels.NumberFormat = "$#, ## 0,00"Koniec pod

Výsledkom je:

Zmena formátovania písma v grafe

V pracovnom hárku sme vybrali nasledujúci graf, ako je uvedené nižšie:

Formátovanie celého písma grafu môžete zmeniť tak, že sa obrátite na objekt písma a zmeníte jeho názov, hmotnosť a veľkosť. Nasledujúci kód mení typ, hmotnosť a veľkosť písma celého grafu.

12345678910 Vedľajšia zmenaTheFontFormatting ()S ActiveChartom.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = True.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14Ukončiť s

Výsledkom je:

Odstránenie grafu pomocou VBA

V pracovnom hárku sme vybrali graf, ako je uvedené nižšie:

Na odstránenie tohto grafu môžeme použiť nasledujúci kód:

12345 PododstránenieTheChart ()ActiveChart.Parent.DeleteKoniec pod

S odvolaním sa na zbierku ChartObjects

Prístup k všetkým vloženým grafom vo svojom hárku alebo zošite nájdete v kolekcii ChartObjects. Máme dva grafy na tom istom hárku, ktoré sú uvedené nižšie:

Budeme sa odvolávať na kolekciu ChartObjects, aby mali obidva grafy na pracovnom hárku rovnakú výšku, šírku, odstránili čiary mriežky, urobili rovnakú farbu pozadia, dali grafom rovnakú farbu oblasti grafu a rovnakú farbu čiary oblasti grafu farba:

12345678910111213141516 Sub ReferringToAllTheChartsOnASheet ()Dim cht As ChartObjectPre každý chtiaci v ActiveSheet.ChartObjectscht.Výška = 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)Ďalej chtKoniec pod

Výsledkom je:

Vloženie grafu na jeho vlastný graf

Máme rozsah A1: B6, ktorý obsahuje zdrojové údaje, uvedené nižšie:

Graf môžete vytvoriť pomocou metódy Charts.Add. Nasledujúci kód vytvorí graf na vlastnom hárku grafu:

123456 Podradené vkladanieAChartOnItsOwnChartSheet ()Tabuľky („List1“). Rozsah („A1: B6“). VyberteGrafy. PridaťKoniec pod

Výsledkom je:

Pozrite sa na niektoré z našich ďalších návodov na vytváranie grafov:

Grafy v programe Excel

Vytvorte stĺpcový graf vo VBA

wave wave wave wave wave