Wykresy i wykresy Excel służą do wizualnego wyświetlania danych. W tym samouczku omówimy, jak używać VBA do tworzenia i manipulowania wykresami i elementami wykresów.
Możesz tworzyć osadzone wykresy w arkuszu lub wykresy na ich własnych arkuszach wykresów.
Tworzenie osadzonego wykresu za pomocą VBA
Mamy zakres A1:B4, który zawiera dane źródłowe, pokazane poniżej:
Wykres można utworzyć za pomocą metody ChartObjects.Add. Poniższy kod utworzy osadzony wykres w arkuszu:
12345678 | Sub UtwórzEmbeddedChartUsingChartObject()Przyciemnij osadzony wykres jako ChartObjectUstaw embeddedchart = Sheets("Arkusz1").ChartObjects.Add(Lewo:=180, Szerokość:=300, Góra:=7, Wysokość:=200)embeddedchart.Chart.SetSourceData Source:=Sheets("Arkusz1").Range("A1:B4")Napis końcowy |
Wynik to:
Wykres można również utworzyć za pomocą metody Shapes.AddChart. Poniższy kod utworzy osadzony wykres w arkuszu:
12345678 | Sub UtwórzEmbeddedChartUsingShapesAddChart()Przyciemnij osadzony wykres jako kształtUstaw embeddedchart = Sheets("Arkusz1").Shapes.AddChartembeddedchart.Chart.SetSourceData Source:=Sheets("Arkusz1").Range("A1:B4")Napis końcowy |
Określanie typu wykresu za pomocą VBA
Mamy zakres A1:B5, który zawiera dane źródłowe, pokazane poniżej:
Typ wykresu można określić za pomocą właściwości ChartType. Poniższy kod utworzy wykres kołowy w arkuszu, ponieważ właściwość ChartType została ustawiona na xlPie:
123456789 | Sub OkreślAChartType()Dim chrt As ChartObjectUstaw wykres = Arkusze("Arkusz1").ChartObjects.Add(Lewo:=180, Szerokość:=270, Góra:=7, Wysokość:=210)chrt.Chart.SetSourceData Źródło:=Sheets("Arkusz1").Range("A1:B5")wykres.Chart.ChartType = xlPieNapis końcowy |
Wynik to:
Oto niektóre z popularnych typów wykresów, które są zwykle określane, chociaż są też inne:
- xlObszar
- xlPie
- xlLinia
- xlRadar
- xlXYSrozproszenie
- xlPowierzchnia
- xlBubble
- xlBarClustered
- xlColumnClustered
Dodawanie tytułu wykresu za pomocą VBA
Mamy wykres wybrany w arkuszu, jak pokazano poniżej:
Musisz najpierw dodać tytuł wykresu za pomocą metody Chart.SetElement, a następnie określić tekst tytułu wykresu, ustawiając właściwość ChartTitle.Text.
Poniższy kod pokazuje, jak dodać tytuł wykresu i określić tekst tytułu aktywnego wykresu:
123456 | Sub AddingAndSettingAChartTitle()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "Sprzedaż produktu"Napis końcowy |
Wynik to:
Uwaga: Musisz najpierw wybrać wykres, aby stał się wykresem aktywnym, aby móc używać obiektu ActiveChart w swoim kodzie.
Zmiana koloru tła wykresu za pomocą VBA
Mamy wykres wybrany w arkuszu, jak pokazano poniżej:
Kolor tła całego wykresu można zmienić, ustawiając właściwość RGB obiektu FillFormat obiektu ChartArea. Poniższy kod nada wykresowi jasnopomarańczowy kolor tła:
12345 | Sub DodawanieKoloruTłaDoObszaruWykresu()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB(253, 242, 227)Napis końcowy |
Wynik to:
Możesz również zmienić kolor tła całego wykresu, ustawiając właściwość ColorIndex obiektu Interior obiektu ChartArea. Poniższy kod nada wykresowi pomarańczowy kolor tła:
12345 | Sub DodawanieKoloruTłaDoObszaruWykresu()ActiveChart.ChartArea.Interior.ColorIndex = 40Napis końcowy |
Wynik to:
Uwaga: Właściwość ColorIndex umożliwia określenie koloru na podstawie wartości od 1 do 56, narysowanej z palety ustawień wstępnych, aby zobaczyć, które wartości reprezentują różne kolory, kliknij tutaj.
Zmiana koloru obszaru wykresu wykresu za pomocą VBA
Mamy wykres wybrany w arkuszu, jak pokazano poniżej:
Możesz zmienić kolor tła tylko obszaru kreślenia wykresu, ustawiając właściwość RGB obiektu FillFormat obiektu PlotArea. Poniższy kod nada obszarowi wykresu jasnozielony kolor tła:
12345 | Sub DodawanieKoloruTłaDoObszaruWykresu()ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB (208, 254, 202)Napis końcowy |
Wynik to:
Dodawanie legendy za pomocą VBA
W arkuszu mamy wybrany wykres, jak pokazano poniżej:
Legendę można dodać za pomocą metody Chart.SetElement. Poniższy kod dodaje legendę po lewej stronie wykresu:
12345 | Sub Dodawanie ALegend()ActiveChart.SetElement (msoElementLegendLeft)Napis końcowy |
Wynik to:
Położenie legendy można określić w następujący sposób:
- msoElementLegendLeft - wyświetla legendę po lewej stronie wykresu.
- msoElementLegendLeftOverlay - nakłada legendę po lewej stronie wykresu.
- msoElementLegendRight - wyświetla legendę po prawej stronie wykresu.
- msoElementLegendRightOverlay - nakłada legendę po prawej stronie wykresu.
- msoElementLegendBottom - wyświetla legendę na dole wykresu.
- msoElementLegendTop - wyświetla legendę na górze wykresu.
Dodawanie etykiet danych za pomocą VBA
W arkuszu mamy wybrany wykres, jak pokazano poniżej:
Etykiety danych można dodawać przy użyciu metody Chart.SetElement. Poniższy kod dodaje etykiety danych na wewnętrznej stronie wykresu:
12345 | Sub Dodawanie Etykiet Danych()ActiveChart.SetElement msoElementDataLabelInsideEndNapis końcowy |
Wynik to:
Sposób rozmieszczenia etykiet danych można określić w następujący sposób:
- msoElementDataLabelShow - wyświetla etykiety danych.
- msoElementDataLabelRight - wyświetla etykiety danych po prawej stronie wykresu.
- msoElementDataLabelLeft - wyświetla etykiety danych po lewej stronie wykresu.
- msoElementDataLabelTop - wyświetla etykiety danych na górze wykresu.
- msoElementDataLabelBestFit - określa najlepsze dopasowanie.
- msoElementDataLabelBottom - wyświetla etykiety danych na dole wykresu.
- msoElementDataLabelCallout - wyświetla etykiety danych jako objaśnienie.
- msoElementDataLabelCenter - wyświetla etykiety danych na środku.
- msoElementDataLabelInsideBase - wyświetla etykiety danych na wewnętrznej bazie.
- msoElementDataLabelOutSideEnd - wyświetla etykiety danych na zewnętrznym końcu wykresu.
- msoElementDataLabelInsideEnd - wyświetla etykiety danych na wewnętrznym końcu wykresu.
Dodawanie osi X i tytułu w VBA
W arkuszu mamy wybrany wykres, jak pokazano poniżej:
Możesz dodać oś X i tytuł osi X przy użyciu metody Chart.SetElement. Poniższy kod dodaje tytuł osi X i osi X do wykresu:
123456789 | Sub DodawanieXAxisandXTitle()Z ActiveChart.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalKończyć zNapis końcowy |
Wynik to:
Dodawanie osi Y i tytułu w VBA
W arkuszu mamy wybrany wykres, jak pokazano poniżej:
Możesz dodać oś Y i tytuł osi Y za pomocą metody Chart.SetElement. Poniższy kod dodaje do wykresu tytuł osi Y i osi Y:
1234567 | Sub Dodawanie AYAxisandYTitle()Z ActiveChart.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalKończyć zNapis końcowy |
Wynik to:
Zmiana formatu liczbowego osi
W arkuszu mamy wybrany wykres, jak pokazano poniżej:
Możesz zmienić format liczbowy osi. Poniższy kod zmienia format liczbowy osi y na walutę:
12345 | Sub ZmianaFormatuLiczby()ActiveChart.Axes(xlValue).TickLabels.NumberFormat = "$#,##0.00"Napis końcowy |
Wynik to:
Zmiana formatowania czcionki na wykresie
W arkuszu mamy wybrany następujący wykres, jak pokazano poniżej:
Możesz zmienić formatowanie całej czcionki wykresu, odwołując się do obiektu czcionki i zmieniając jego nazwę, grubość i rozmiar czcionki. Poniższy kod zmienia typ, wagę i rozmiar czcionki całego wykresu.
12345678910 | Sub ZmianaFormatowania Czcionki()Z ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = Prawda.ChartArea.Format.TextFrame2.TextRange.Czcionka.Rozmiar = 14Kończyć z |
Wynik to:
Usuwanie wykresu za pomocą VBA
W arkuszu mamy wybrany wykres, jak pokazano poniżej:
Aby usunąć ten wykres, możemy użyć następującego kodu:
12345 | Sub UsuwanieWykresu()ActiveChart.Parent.DeleteNapis końcowy |
Odnosząc się do kolekcji ChartObjects
Możesz uzyskać dostęp do wszystkich osadzonych wykresów w arkuszu lub skoroszycie, odwołując się do kolekcji ChartObjects. Mamy dwa wykresy na tym samym arkuszu pokazanym poniżej:
Odniesiemy się do kolekcji ChartObjects, aby nadać obu wykresom w arkuszu tę samą wysokość, szerokość, usunąć linie siatki, ustawić taki sam kolor tła, nadać wykresom ten sam kolor obszaru kreślenia i taki sam kolor linii obszaru kreślenia kolor:
12345678910111213141516 | Sub odwołujące się do wszystkich wykresów na arkuszu()Dim cht As ChartObjectDla każdego cht w ActiveSheet.ChartObjectswys.cht = 144,85cht.Szerokość = 246.61cht.Chart.Axes(xlValue).MajorGridlines.Deletecht.Chart.Obszar wykresu.Format.Wypełnienie.Kolor.fore.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)Następny czatNapis końcowy |
Wynik to:
Wstawianie wykresu na osobnym arkuszu wykresów
Mamy zakres A1:B6, który zawiera dane źródłowe, pokazane poniżej:
Wykres można utworzyć za pomocą metody Charts.Add. Poniższy kod utworzy wykres na własnym arkuszu wykresu:
123456 | Sub WstawianieAChartOnItsOwnChartSheet()Arkusze("Arkusz1").Zakres("A1:B6").WybierzWykresy.DodajNapis końcowy |
Wynik to:
Zobacz niektóre z naszych innych samouczków dotyczących wykresów:
Wykresy w Excelu
Utwórz wykres słupkowy w VBA