Microsoft Excel VBA grafiklerle (charts) çalışma nasıl yapılır? (ChartObjects.Add, Charts.Add, ActiveChart.ChartType, ActiveChart.SetSourceData vb.)

Grafik Oluşturma ve Ekleme

Microsoft Excel VBA ile grafik oluşturmak için iki ana yöntem bulunmaktadır: `ChartObjects.Add` ve `Charts.Add` kullanımı. `ChartObjects.Add` yöntemi, belirli bir çalışma sayfasına grafik eklemek için kullanılırken, `Charts.Add` yöntemi, yeni bir grafik nesnesi oluşturup düzenleme imkanı sunar.

`ChartObjects.Add` yöntemi, aşağıdaki biçimde kullanılabilir:

“`vba
Sub GrafikEkle()
Dim ws As Worksheet
Dim graf As ChartObject
Set ws = ThisWorkbook.Sheets(“Sheet1”)
Set graf = ws.ChartObjects.Add(Left:=100, Top:=50, Width:=375, Height:=225)
graf.Chart.ChartType = xlColumnClustered
graf.Chart.SetSourceData Source:=ws.Range(“A1:B5”)
End Sub
“`

Grafik Türlerinin Belirlenmesi

Grafik türleri, Excel’deki grafiklerin görsel sunumunu belirler. `ActiveChart.ChartType` özelliği kullanılarak, grafik türü değiştirilir. Örneğin, bir sütun grafiği, pasta grafiği veya çizgi grafiği oluşturmak mümkündür. Olası grafik türleri, Excel’de yer alan grafik türleri arasında şunlar bulunur:

– `xlColumnClustered` (Sütun Grafiği)
– `xlLine` (Çizgi Grafiği)
– `xlPie` (Pasta Grafiği)
– `xlBar` (Çubuk Grafiği)

Aşağıda aktif grafiğin türünü değiştirirken kullanılabilecek bir örnek verilmiştir:

“`vba
Sub GrafikTurunuDegistir()
Dim graf As ChartObject
Set graf = ThisWorkbook.Sheets(“Sheet1”).ChartObjects(1)
graf.Chart.ChartType = xlPie
End Sub
“`

Veri Seti Belirleme

Grafiklerde kullanılacak veri setlerini belirlemek için `ActiveChart.SetSourceData` yöntemi kullanılmaktadır. Bu yöntem, grafikteki verilerin hangi hücre aralığından alınacağını tanımlar. Aşağıdaki kodda, bir grafik için veri kaynaklarının belirlenmesi gösterilmektedir:

“`vba
Sub VeriKaynaklariniBelirle()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”)
With ws.ChartObjects(1).Chart
.SetSourceData Source:=ws.Range(“A1:B10”)
End With
End Sub
“`

Grafik İçin Veri Seri Ekleme

Grafiklere bireysel veri serileri eklemek için `SeriesCollection` özelliği kullanılabilir. Bu yöntem, farklı veri serileri ile bir grafikte birden fazla bilgi sunma imkânı sağlar. Örneğin, aşağıdaki kod, bir grafiğe yeni bir veri serisi eklemektedir:

“`vba
Sub VeriSerisiEkle()
Dim graf As Chart
Set graf = ThisWorkbook.Sheets(“Sheet1”).ChartObjects(1).Chart
With graf.SeriesCollection.NewSeries
.Name = “Yeni Veri”
.XValues = ThisWorkbook.Sheets(“Sheet1”).Range(“C1:C5”)
.Values = ThisWorkbook.Sheets(“Sheet1”).Range(“C2:C6”)
End With
End Sub
“`

Grafik Biçimlendirme

Grafiklerin görsel olarak daha çekici hale gelmesi için biçimlendirme işlemleri de önemlidir. Renkler, etiketler, başlıklar ve diğer grafik elemanları üzerinde değişiklik yapmak, grafiklerin okunabilirliğini artırır. Aşağıdaki örnek, bir grafiğin başlığının ve eksen etiketlerinin nasıl değiştirilebileceğini göstermektedir:

“`vba
Sub GrafikBiçimlendir()
Dim graf As Chart
Set graf = ThisWorkbook.Sheets(“Sheet1”).ChartObjects(1).Chart

graf.HasTitle = True
graf.ChartTitle.Text = “Satış Verileri”

graf.Axes(xlCategory, xlPrimary).HasTitle = True
graf.Axes(xlCategory, xlPrimary).AxisTitle.Text = “Tarih”

graf.Axes(xlValue, xlPrimary).HasTitle = True
graf.Axes(xlValue, xlPrimary).AxisTitle.Text = “Satış Tutarı”
End Sub
“`

Grafik Güncelleme ve Silme

Tanımlanan grafiklerde güncelleme veya silme işlemleri de önemlidir. Var olan bir grafiği güncellemek için grafik özelliklerinde değişiklik yapmak yeterlidir. Bir grafiği silmek için ise `Delete` yöntemi kullanılabilir:

“`vba
Sub GrafikSil()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”)
ws.ChartObjects(1).Delete
End Sub
“`

Kullanıcı Tanımlı Grafik

Excel VBA ile kullanıcı belirli grafik türlerini oluşturmasına veya dinamik графik oluşturmasına olanak verir. Örnek olarak, kullanıcıdan veri girişi alarak grafik oluşturmak mümkündür. Aşağıdaki gibi bir yapı, kullanıcıdan veri almayı sağlar:

“`vba
Sub DinamikGrafikOlustur()
Dim ws As Worksheet
Dim veriSayisi As Integer
Dim i As Integer

Set ws = ThisWorkbook.Sheets(“Sheet1”)
veriSayisi = InputBox(“Kaç veri noktası girmek istiyorsunuz?”, “Veri Sayısı”)

For i = 1 To veriSayisi
ws.Cells(i, 1).Value = InputBox(“X Değerini girin:”, “X Değeri”)
ws.Cells(i, 2).Value = InputBox(“Y Değerini girin:”, “Y Değeri”)
Next i

Call GrafikEkle
End Sub
“`

Yukarıda açıklanan yöntemler, Microsoft Excel VBA ile grafiklerle çalışma hakkında kapsamlı bir bilgi sunmaktadır. Grafiklerin yaratılması, biçimlendirilmesi ve güncellenmesi üzerinde detaylı bir kontrol sağlamaktadır. Grafik oluşturmada VBA kodları, Excel kullanıcılarına güçlü bir araç sunmaktadır.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR