Verileri görsel olarak görüntülemek için Excel çizelgeleri ve grafikler kullanılır. Bu eğitimde, grafikler ve grafik öğeleri oluşturmak ve işlemek için VBA'nın nasıl kullanılacağını ele alacağız.
Bir çalışma sayfasında gömülü grafikler veya kendi grafik sayfalarında grafikler oluşturabilirsiniz.
VBA Kullanarak Gömülü Grafik Oluşturma
Aşağıda gösterilen kaynak verileri içeren A1:B4 aralığına sahibiz:
ChartObjects.Add yöntemini kullanarak bir grafik oluşturabilirsiniz. Aşağıdaki kod, çalışma sayfasında gömülü bir grafik oluşturacaktır:
12345678 | Sub CreateEmbeddedChartUsingChartObject()Gömülü grafiği ChartObject olarak karartSet gömülüchart = Sheets("Sheet1").ChartObjects.Add(Sol:=180, Genişlik:=300, Üst:=7, Yükseklik:=200)gömülüchart.Chart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B4")Alt Bitiş |
Sonuç:
Shapes.AddChart yöntemini kullanarak da bir grafik oluşturabilirsiniz. Aşağıdaki kod, çalışma sayfasında gömülü bir grafik oluşturacaktır:
12345678 | Sub CreateEmbeddedChartUsingShapesAddChart()Gömülü grafiği Şekil Olarak karartGömülü grafiği ayarla = Sayfalar("Sayfa1").Shapes.AddChartgömülüchart.Chart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B4")Alt Bitiş |
VBA Kullanarak Bir Grafik Türü Belirtme
Aşağıda gösterilen kaynak verileri içeren A1:B5 aralığına sahibiz:
ChartType Özelliğini kullanarak bir grafik türü belirleyebilirsiniz. ChartType Özelliği xlPie olarak ayarlandığından, aşağıdaki kod çalışma sayfasında bir pasta grafiği oluşturacaktır:
123456789 | Alt SpecifyAChartType()Dim chrt As ChartObjectSet chrt = Sheets("Sheet1").ChartObjects.Add(Sol:=180, Genişlik:=270, Üst:=7, Yükseklik:=210)chrt.Chart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B5")chrt.Chart.ChartType = xlPieAlt Bitiş |
Sonuç:
Diğerleri olmasına rağmen, genellikle belirtilen popüler grafik türlerinden bazıları şunlardır:
- xlAlan
- xlPasta
- xlline
- xlRadar
- xlXYScatter
- xlYüzey
- xlKabarcık
- xlBarKümelenmiş
- xlSütunKümelenmiş
VBA Kullanarak Grafik Başlığı Ekleme
Aşağıda gösterildiği gibi çalışma sayfasında seçilen bir grafiğimiz var:
Önce Chart.SetElement yöntemini kullanarak bir grafik başlığı eklemeniz ve ardından ChartTitle.Text özelliğini ayarlayarak grafik başlığının metnini belirtmeniz gerekir.
Aşağıdaki kod, nasıl bir grafik başlığı ekleyeceğinizi ve Aktif Grafik başlığının metnini nasıl belirleyeceğinizi gösterir:
123456 | Alt AddingAndSettingAChartTitle()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "Ürünün Satışı"Alt Bitiş |
Sonuç:
Not: ActiveChart nesnesini kodunuzda kullanabilmek için önce grafiği Active Chart yapmak için seçmelisiniz.
VBA Kullanarak Grafik Arka Plan Rengini Değiştirme
Aşağıda gösterildiği gibi çalışma sayfasında seçilen bir grafiğimiz var:
ChartArea nesnesinin FillFormat nesnesinin RGB özelliğini ayarlayarak tüm grafiğin arka plan rengini değiştirebilirsiniz. Aşağıdaki kod, grafiğe açık turuncu bir arka plan rengi verecektir:
12345 | Alt EklemeABackgroundColorToTheChartArea()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB(253, 242, 227)Alt Bitiş |
Sonuç:
ChartArea nesnesinin Interior nesnesinin ColorIndex özelliğini ayarlayarak tüm grafiğin arka plan rengini de değiştirebilirsiniz. Aşağıdaki kod, grafiğe turuncu bir arka plan rengi verecektir:
12345 | Alt EklemeABackgroundColorToTheChartArea()ActiveChart.ChartArea.Interior.ColorIndex = 40Alt Bitiş |
Sonuç:
Not: ColorIndex özelliği, ön ayar paletinden çizilen 1'den 56'ya kadar bir değere dayalı olarak bir renk belirlemenize olanak tanır, hangi değerlerin farklı renkleri temsil ettiğini görmek için burayı tıklayın.
VBA Kullanarak Grafik Plot Alanı Rengini Değiştirme
Aşağıda gösterildiği gibi çalışma sayfasında seçilen bir grafiğimiz var:
PlotArea nesnesinin FillFormat nesnesinin RGB özelliğini ayarlayarak grafiğin yalnızca çizim alanının arka plan rengini değiştirebilirsiniz. Aşağıdaki kod, grafiğin çizim alanına açık yeşil bir arka plan rengi verecektir:
12345 | Alt EklemeABackgroundColorToThePlotArea()ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB(208, 254, 202)Alt Bitiş |
Sonuç:
VBA Kullanarak Efsane Ekleme
Aşağıda gösterildiği gibi çalışma sayfasında seçilen bir grafiğimiz var:
Chart.SetElement yöntemini kullanarak bir gösterge ekleyebilirsiniz. Aşağıdaki kod, grafiğin soluna bir gösterge ekler:
12345 | Alt EklemeALegend()ActiveChart.SetElement (msoElementLegendLeft)Alt Bitiş |
Sonuç:
Göstergenin konumunu aşağıdaki şekillerde belirleyebilirsiniz:
- msoElementLegendLeft - göstergeyi grafiğin sol tarafında görüntüler.
- msoElementLegendLeftOverlay - göstergeyi grafiğin sol tarafına yerleştirir.
- msoElementLegendRight - göstergeyi grafiğin sağ tarafında görüntüler.
- msoElementLegendRightOverlay - göstergeyi grafiğin sağ tarafına yerleştirir.
- msoElementLegendBottom - göstergeyi grafiğin altında görüntüler.
- msoElementLegendTop - göstergeyi grafiğin en üstünde görüntüler.
VBA Kullanarak Veri Etiketleri Ekleme
Aşağıda gösterildiği gibi çalışma sayfasında seçilen bir grafiğimiz var:
Chart.SetElement yöntemini kullanarak veri etiketleri ekleyebilirsiniz. Aşağıdaki kod, grafiğin iç ucuna veri etiketleri ekler:
12345 | Alt EklemeADataLabels()ActiveChart.SetElement msoElementDataLabelInsideEndAlt Bitiş |
Sonuç:
Veri etiketlerinin nasıl konumlandırılacağını aşağıdaki şekillerde belirleyebilirsiniz:
- msoElementDataLabelShow - veri etiketlerini görüntüleyin.
- msoElementDataLabelRight - grafiğin sağ tarafında veri etiketlerini görüntüler.
- msoElementDataLabelLeft - grafiğin solunda veri etiketlerini görüntüler.
- msoElementDataLabelTop - grafiğin en üstünde veri etiketlerini görüntüler.
- msoElementDataLabelBestFit - en uygun olanı belirler.
- msoElementDataLabelBottom - grafiğin altında veri etiketlerini görüntüler.
- msoElementDataLabelCallout - veri etiketlerini belirtme çizgisi olarak görüntüler.
- msoElementDataLabelCenter - veri etiketlerini merkezde görüntüler.
- msoElementDataLabelInsideBase - iç tabandaki veri etiketlerini görüntüler.
- msoElementDataLabelOutSideEnd - grafiğin dış ucundaki veri etiketlerini görüntüler.
- msoElementDataLabelInsideEnd - grafiğin iç ucundaki veri etiketlerini görüntüler.
VBA'da X ekseni ve Başlık ekleme
Aşağıda gösterildiği gibi çalışma sayfasında seçilen bir grafiğimiz var:
Chart.SetElement yöntemini kullanarak bir X ekseni ve X ekseni başlığı ekleyebilirsiniz. Aşağıdaki kod, grafiğe bir X ekseni ve X ekseni başlığı ekler:
123456789 | Alt EklemeAnXAxisandXTitle()ActiveChart ile.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalİle bitmekAlt Bitiş |
Sonuç:
VBA'da Y ekseni ve Başlık ekleme
Aşağıda gösterildiği gibi çalışma sayfasında seçilen bir grafiğimiz var:
Chart.SetElement yöntemini kullanarak bir Y ekseni ve Y ekseni başlığı ekleyebilirsiniz. Aşağıdaki kod, grafiğe bir Y ekseni ve Y ekseni başlığı ekler:
1234567 | Alt EklemeAYAxisandYTitle()ActiveChart ile.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalİle bitmekAlt Bitiş |
Sonuç:
Bir Eksenin Sayı Biçimini Değiştirme
Aşağıda gösterildiği gibi çalışma sayfasında seçilen bir grafiğimiz var:
Bir eksenin sayı biçimini değiştirebilirsiniz. Aşağıdaki kod, y ekseninin sayı biçimini para birimine değiştirir:
12345 | Alt ChangingTheNumberFormat()ActiveChart.Axes(xlValue).TickLabels.NumberFormat = "$#,##0.00"Alt Bitiş |
Sonuç:
Bir Grafikte Yazı Tipinin Biçimlendirmesini Değiştirme
Aşağıda gösterildiği gibi çalışma sayfasında aşağıdaki grafiği seçtik:
Yazı tipi nesnesine başvurarak ve adını, yazı tipi ağırlığını ve boyutunu değiştirerek tüm grafik yazı tipinin biçimlendirmesini değiştirebilirsiniz. Aşağıdaki kod, tüm grafiğin yazı tipinin türünü, ağırlığını ve boyutunu değiştirir.
12345678910 | Alt DeğiştirmeTheFontFormatting()ActiveChart ile.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = Doğru.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14İle bitmek |
Sonuç:
VBA Kullanarak Bir Grafiği Silme
Aşağıda gösterildiği gibi çalışma sayfasında seçilen bir grafiğimiz var:
Bu grafiği silmek için aşağıdaki kodu kullanabiliriz:
12345 | Alt SilmeTheChart()ActiveChart.Parent.DeleteAlt Bitiş |
ChartObjects Koleksiyonuna başvurma
ChartObjects koleksiyonuna başvurarak çalışma sayfanızdaki veya çalışma kitabınızdaki tüm gömülü grafiklere erişebilirsiniz. Aşağıda gösterilen aynı sayfada iki grafiğimiz var:
Çalışma sayfasındaki her iki grafiğe aynı yükseklik, genişlik vermek, kılavuz çizgilerini silmek, arka plan rengini aynı yapmak, grafiklere aynı çizim alanı rengini vermek ve çizim alanı çizgi rengini aynı yapmak için ChartObjects koleksiyonuna başvuracağız. renk:
12345678910111213141516 | Sub ReferringToAllTheChartsOnASheet()Dim cht As ChartObjectActiveSheet.ChartObjects içindeki her cht içincht.Yükseklik = 144.85cht.Genişlik = 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)Sonraki ktAlt Bitiş |
Sonuç:
Kendi Grafik Sayfasına Grafik Ekleme
Aşağıda gösterilen kaynak verileri içeren A1:B6 aralığına sahibiz:
Charts.Add yöntemini kullanarak bir grafik oluşturabilirsiniz. Aşağıdaki kod, kendi grafik sayfasında bir grafik oluşturacaktır:
123456 | Alt EklemeAChartOnItsOwnChartSheet()Sayfalar("Sayfa1").Aralık("A1:B6").SeçGrafikler.EkleAlt Bitiş |
Sonuç:
Diğer grafik öğreticilerimizden bazılarına bakın:
Excel'deki Grafikler
VBA'da bir Çubuk Grafik Oluşturun