Grafik Olayları

Bu bölümde her ne kadar grafiklerle ilgili VBA kod bilgisi çok gerekmese de ortalama bir genel grafik bilgisinin gerekli olduğu aşikardır. O yüzden eğer ihtiyaç duyuyorsanız grafiklerle ilgili genel Excel bilgisine buradan, kod bilgisine ise buradan alabilirsiniz. Sonrasında buradan tekrar devam de edebilirisiniz.

Grafik olayları grafiğinize bir şey olduğunda tetiklenirler. Bizim burada ele alacağımız grafikler normal bir Worksheet içindeki gömülü duran grafiklerdir. Bir Sheet türü olan Chart Sheetlerindeki grafiklerin ise aşağıdaki resimde göreceğiniz üzere tıpkı Worksheet eventleri gibi olayları vardır. O yüzden onlar bu sayfada kapsam dışılar.

post-thumb

Yanlış anlaşılma olmasın, gömülü grafiklerin olayları da aslında Chart sheetlerinki gibidir. Burada onları farklı olarak ele almak istememizin sebebi, onlara ulaşım şeklimizin farklı oluşudur. Gömülü grafiklerin eventlerini yakalamak için class yaratmamız gerekir.

Ne Zaman İhtiyaç Duyarız?

Grafik olayları oluşturduğunuz dosyalara interaktivite eklemenizi sağlayarak onların daha kolay kullanımını sağlarlar. Özellikle drilldown ve drillup işlemlerinde kullanışlı olabilirler. Ayrıca grafik üzerindeki bir noktaya tıkladıktan sonra o noktayla ilgili detay bir bilgi baloncuğu göstermek gibi şeyler de yapabilirsiniz.

Açıkçasını söylemek gerekirse şimdiye kadar çok kullanmadım ama kullanımının faydalı olacağını düşündüğüm için konular arasına aldım. Kendim bir kullanım imkanı yaratan kadar sizlere faydalı olacağını düşündüğüm birkaç link vermekle yetineceğim.

  • Büyük üstadlardan Jon Peltier'in sayfası grafik olaylarıyla ilgili oldukça fazla miktarda bilgi içeriyor.
  • Mouse_move ile ilgili şu sitede güzel bir örnek var.
  • Bu sitede de güzel örnekler bulabilirsiniz.
Tanımlama Şekli

Yukarıdaki linklerde detaylarını görebileceksiniz gerçi ama ben yine de temel olarak nasıl bir işlem yapmanız gerektiğini anlatmak isterim. Aslında Application olayları tanımlamaktan bir farkı yok.

Örnek dosyayı buradan indirebilirsiniz. Bu dosyanın ilk sayfası normal bir grafik sayfası olup bunun event kodu aşağıdaki gibidir.

                    
                            Private Sub Chart_Activate()
                                MsgBox "Bir sheet olan chart sayfası seçildi"
                            End Sub
                                
                                

Esas özel kodun yazıldığı kısım ise worksheetteki gömülü grafik içindir. O da aşağıdaki gibidir. Bu kod ThisWorkbook modülüne yazılır.

                    
                            Public WithEvents CHT As Chart

                            Private Sub Workbook_Open()
                                Set CHT = Worksheets(1).ChartObjects(1).Chart
                            End Sub

                            Private Sub CHT_Activate()
                                MsgBox "CHT: TypeName: " & TypeName(CHT) & vbCrLf & _
                                    "CHT Name: '" & CHT.Name & "'" & vbCrLf & _
                                    "CHT Parent TypeName: " & TypeName(CHT.Parent) & vbCrLf & _
                                    "CHT Parent Name: " & CHT.Parent.Name
                            End Sub