Örnek: Aşağıdaki komut seçtiğimiz hücre içeriğini kırmızı yapar:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Cells.Font.Color = VBA.ColorConstants.vbBlack Target.Font.Color = VBA.ColorConstants.vbRed End Sub
Not: Target değişkeninin Range (Aralık) olarak tanımlandığına dikkat edin. Kullanıcının seçtiği hücre veya aralık Target değişkenine aktarılır.
Örnek: Aşağıdaki komutla sadece A:D sütunları içinde bir değişiklik yaptığımızda, bu aralığa bağlı pivot tablo otomatik olarak yenilenir. Yapılan değişikliğin sadece A:D sütunları içinde olduğunu zaman geçerli olacağını belirtmek için Intersect fonksiyonu kullanılır:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Columns("A:D")) Is Nothing Then Worksheets("PivotRapor").PivotTables("PivotTablo").PivotCache.Refresh MsgBox "pivot tablo yenilendi" End If End Sub
Ek Bilgi: Aşağıdaki komut seçili hücrelerin B2:D9 aralığı ile kesişen hücrelerin adresini verir. Eğer kesişim yoksa hata vermez:
Sub makro_kesisim() Dim kesisim As Range Set kesisim = Excel.Intersect(Selection, Range("B2:D9")) If kesisim Is Nothing Then Exit Sub Else Debug.Print kesisim.Address End If End Sub
Örnek: Eğer sadece bir hücrede değişiklik meydana geldiğinde olay çalıştırmak için aşağıdaki komutu kullanmak yeterlidir:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$2" Then Range("C2").Value = "Lütfen Seçiniz..." End If End Sub