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