VBA kullanarak koşullu biçimlendirme – bazı örnekler

  • History |
  • |
  • 0 Yorum

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