VBA kullanarak koşullu biçimlendirme bazı örnekler
VBA kullanılarak yeni koşullu biçimlendirme özelliklerine nasıl erişilebileceğini soran bazı yorumlar ve e-postalar aldığım için birkaç kısa örnek vermek istedim. Excel ekibinin ilkelerinden biri, yeni özellikler eklediğimizde, bunların kullanıcı arayüzünün yanı sıra programlı olarak da kullanılabilir olduğundan emin olmamızdır. Buna göre Excel 12 nesne modeli, kullanıcı arabiriminde desteklenen tüm koşullu biçimlendirme işlevlerini destekler. Bu, kuralların oluşturulmasını, düzenlenmesini veya silinmesini veya kurallardaki önceliklerin değiştirilmesini içerir.
Excel'in önceki sürümlerinde koşullu biçimlendirme VBA yazan kişilerin bileceği gibi, FormatConditions koleksiyonu, Range nesnesini kapatıyor. Yeni işlevselliğimizin FormatConditions koleksiyonunda nasıl gösterildiğine dair bazı örnekleri kısaca gözden geçirmeme izin verin.
Kural oluşturma:
Excel 12'de tanıttığımız yeni koşullu biçimlendirme kuralları (Databars, Color Scales, Icon Sets, Top n vb.), FormatConditions koleksiyonundaki Add<objectname> yöntemi kullanılarak oluşturulabilir. Örneğin, bir Veri Çubuğu eklemek için şunu çalıştırın:
Aralık(“A1:A5”).FormatConditions.AddDatabar
Kuralı düzenleme:
Kuralı düzenlemek için FormatConditions koleksiyonuna indeksleyin ve özellikleri değiştirin. Örneğin, çubuk rengini değiştirmek için şunu çalıştırın:
Range(“A1:A5”).FormatConditions(1).BarColor.ColorIndex = 3
Burada 1 sayısı, aralıktaki ilk kuralı indeksler.
Önceliği düzenleme:
Excel 12'de, bir aralıkta birden çok koşulu desteklemek için kural öncelikleri fikrini tanıttık. Öncelik, kuralın uygulama sırasını belirler. Nesne modelinde, FormatConditions nesnesinde Priority özelliğine de sahibiz. Bu özellik, sayfa düzeyinde izlenir. Örneğin, bir kuralın önceliğini doğrulamak için şunu çalıştırın:
?Range(“A1:A5”).FormatKoşullar(1).Öncelik
Bu kuralı en düşük öncelik yapmak için:
Aralık(“A1:A5”).FormatConditions(1).SetLastPriority
Belirli bir öncelik atamak için:
Aralık(“A1:A5”).FormatKoşullar(1).Öncelik = 3
Üç kuralınız olsaydı, önceliği 3 olarak ayarlamak ve SetLastPriority kullanmak aynı etkiye sahip olurdu.
Kuralı silme:
Belirli bir kuralı, içine dizine ekleyerek ve ardından Sil yöntemini çağırarak silebilirsiniz.
Aralık(“A1:A5”).FormatConditions(1).Delete
Belirli bir aralıktaki tüm kuralları silmek için FormatConditions koleksiyonundaki Delete yöntemini çağırın.
Aralık(“A1:A5”).FormatConditions.Delete