VBA Koşullu Biçimlendirme - VBA Excel'i kullanarak Koşullu Biçimi uygulayın

Excel VBA'da Koşullu Biçimlendirme

Excel'de bir hücreye veya hücre aralığına koşullu biçimlendirme uygulayabiliriz. Koşullu biçim, yalnızca belirli ölçütleri karşılayan hücrelere uygulanan bir biçimdir, örneğin belirli bir değerin üzerindeki değerler, pozitif veya negatif değerler veya belirli bir formüle sahip değerler vb. makroda / prosedürde ' Biçim Koşulları Koleksiyonu '

Biçim Koşulu, bu türden bir değişkeni döndüren bir yöntemi çağırarak ayarlanabilen koşullu bir biçimi temsil etmek için kullanılır. Tek bir aralık için tüm koşullu biçimleri içerir ve yalnızca üç biçim koşulunu tutabilir.

FormatConditions.Add / Modify / Delete , VBA'da koleksiyona FormatCondition nesnelerini eklemek / değiştirmek / silmek için kullanılır. Her format bir FormatCondition nesnesiyle temsil edilir. FormatConditions , Range nesnesinin bir özelliğidir ve aşağıdaki sözdizimiyle aşağıdaki parametreleri ekleyin :

FormatConditions.Add (Tür, İşleç, Formül1, Formül2) 

Formül ekle söz diziminde aşağıdaki bağımsız değişkenler bulunur:

  • Tür: Gerekli, koşullu biçimin hücrede bulunan değere mi yoksa bir ifadeye mi dayandığını gösterir.
  • Operatör: İsteğe bağlı, 'Tür' hücre değerine bağlı olduğunda bir değerle kullanılacak operatörü temsil eder.
  • Formula1: İsteğe bağlı, koşullu biçimle ilişkili değeri veya ifadeyi temsil eder.
  • Formula2: İsteğe bağlı, "İşleç" parametresi "xlBetween" veya "xlNotBetween" olduğunda koşullu biçimin ikinci kısmıyla ilişkili değeri veya ifadeyi temsil eder.

FormatConditions.Modify ayrıca FormatConditions.Add ile aynı sözdizimine sahiptir .

Aşağıda, 'Ekle' / 'Değiştir'in bazı parametreleri tarafından alınabilecek bazı değerlerin / numaralandırmaların listesi bulunmaktadır:

VBA Koşullu Biçimlendirme Örnekleri

Aşağıda, Excel VBA'da Koşullu biçimlendirme örnekleri verilmiştir.

Örnek 1

Diyelim ki bazı öğrencilerin isimlerini ve işaretlerini içeren bir Excel dosyamız var ve işaretleri Kalın ve mavi renkte 80'den büyük, Kalın ve Kırmızı olarak belirlemek / vurgulamak istiyoruz. 50. Dosyanın içerdiği verilere bakalım:

FormatConditions kullanıyoruz. Bunu gerçekleştirmek için aşağıdaki işlevi ekleyin:

  • Geliştirici'ye gidin -> Visual Basic Düzenleyicisi:
  • 'Proje-VBAProject' bölmesindeki çalışma kitabı adına sağ tıklayın -> 'Ekle' -> 'Modül.'
  • Şimdi kodu / prosedürü bu modüle yazın:

Kod:

Alt biçimlendirme () Son Alt
  • Rng, koşul1, koşul2 değişkenini tanımlayın:

Kod:

Alt biçimlendirme () Aralık Olarak Dim aralığı Dim koşulu1 FormatCondition olarak, koşul2 As FormatCondition End Sub
  • VBA "Aralık" işlevini kullanarak koşullu biçimlendirmenin isteneceği aralığı ayarlayın / düzeltin:

Kod:

Alt biçimlendirme () Aralık Olarak Dim rng Dim koşulu1 FormatCondition olarak, koşul2 Olarak FormatCondition Ayarla rng = Aralık ("B2", "B11") End Sub
  • Aralıktaki mevcut koşullu biçimlendirmeleri (varsa) 'FormatConditions.Delete' kullanarak silin / silin:

Kod:

Alt biçimlendirme () Aralık Olarak Dim rng Dim koşulu1 FormatCondition olarak, koşul2 Olarak FormatCondition Ayarla rng = Aralık ("B2", "B11") rng.FormatConditions.Delete End Sub
  • Şimdi, 'FormatConditions.Add' kullanarak her koşullu biçim için ölçütleri tanımlayın ve ayarlayın:

Kod:

Alt biçimlendirme () Aralık Olarak Dim rng Dim koşulu1 FormatCondition olarak, koşul2 Olarak FormatCondition Ayarla rng.FormatConditions.Delete Set koşul1 = rng.FormatConditions.Add (xlCellValue, xlGreater, "= 80 ") Koşul2 = rng.FormatConditions.Add (xlCellValue, xlLess," = 50 ") End Sub
  • Her koşul için uygulanacak formatı tanımlayın ve ayarlayın

Bu kodu kopyalayıp VBA sınıfı modülünüze yapıştırın.

Kod:

Alt formatlama () 'Değişkenleri tanımlama: Aralık Olarak Dim rng Dim koşulu1 FormatCondition olarak, koşul2 As FormatCondition' Sabitleme / Koşullu biçimlendirmenin isteneceği aralığı ayarlama rng = Aralık ("B2", "B11") 'Şuna ayarlayın rng.FormatConditions.Delete 'aralığındaki mevcut herhangi bir koşullu biçimlendirmeyi silin / temizleyin Her koşullu biçim için ölçütleri tanımlama ve ayarlama Koşul1 = rng.FormatConditions.Add (xlCellValue, xlGreater, "= 80") Ayarla koşul2 = rng.FormatConditions. Add (xlCellValue, xlLess, "= 50") 'Koşul1 ile her koşul için uygulanacak biçimi tanımlama ve ayarlama .Font.Color = vbBlue .Font.Bold = True End With condition2 .Font.Color = vbRed .Font. Kalın = End Sub ile Gerçek Son

Şimdi bu kodu F5 tuşunu kullanarak veya manuel olarak çalıştırdığımızda, 50'den küçük olan işaretlerin kalın ve kırmızı renkte vurgulandığını, 80'den büyük olanların ise aşağıdaki gibi koyu ve mavi renkte vurgulandığını görüyoruz:

Not: FormatCondition ile kullanılabilen biçimlendirilmiş hücrelerin görünümü için bazı özellikler şunlardır:

Örnek 2

Diyelim ki yukarıdaki örnekte, öğrencinin 80'den fazla puan alması durumunda bir 'Topper' olduğunu, aksi takdirde onlara karşı Başarılı / Başarısız olduğunu belirten başka bir sütunumuz var. Şimdi 'Topper' olarak belirtilen değerleri Kalın ve Mavi olarak vurgulamak istiyoruz. Dosyanın içerdiği verileri görelim:

Bu durumda, kod / prosedür aşağıdaki gibi çalışacaktır:

Kod:

Alt Metin Biçimlendirme () Son Alt

Her koşul için uygulanacak formatı tanımlayın ve ayarlayın

Kod:

Sub TextFormatting () With Range ("c2: c11"). FormatConditions.Add (xlTextString, TextOperator: = xlContains, String: = "topper") .Font .Bold = True .Color = vbBlue End With End With End Sub

Yukarıdaki kodda, "C2: C11" aralığının "Topper" dizesini içerip içermediğini test etmek istediğimizi görebiliriz, dolayısıyla "Format.Add" parametresinin "Onamestor" parametresi şu numaralandırmayı alır: "Xcontains" bu koşulu sabit aralıkta (yani C2: C11) test edin ve ardından bu aralıkta gerekli koşullu biçimlendirmeyi (yazı tipi değişiklikleri) yapın.

Şimdi bu kodu manuel olarak veya F5 tuşuna basarak çalıştırdığımızda, 'Topper' ile hücre değerlerinin Mavi ve kalın olarak vurgulandığını görüyoruz:

Not: Bu nedenle, yukarıdaki iki örnekte, herhangi bir hücre değeri kriteri (sayısal veya metin dizesi) durumunda 'Ekle' yönteminin nasıl çalıştığını gördük.

Below are some other instances/criteria that can be used to test and thus apply VBA conditional formatting on:

  • Format by Time Period
  • Average condition
  • Colour Scale condition
  • IconSet condition
  • Databar condition
  • Unique Values
  • Duplicate Values
  • Top10 values
  • Percentile Condition
  • Blanks Condition, etc.

With different conditions to be tested, different values/enumeration are taken by parameters of ‘Add.’

Things to Remember About VBA Conditional Formatting

  • ‘Add’ method with ‘FormatConditions’ is used to create a new conditional format, ’Delete’ method to delete any conditional format, and ‘Modify’ method to alter any existing conditional format.
  • The ‘Add’ method with ‘FormatConditions Collection’ fails if more than three conditional formats are created for a single range.
  • 'Ekle' yöntemini kullanarak bir aralığa üçten fazla koşullu biçim uygulamak için, 'Eğer' veya 'büyük / küçük harf seç'i kullanabiliriz.
  • 'Add' yönteminin 'Type' parametresi 'xlExpression' olarak varsa, 'Operator' parametresi yok sayılır.
  • "Ekle" yöntemindeki "Formula1" ve "Formula2" parametreleri bir hücre referansı, sabit değer, dize değeri ve hatta bir formül olabilir.
  • "Formula2" parametresi, yalnızca "Operator" parametresi "xlBetween" veya "xlNotBetween" olduğunda kullanılır, aksi takdirde yok sayılır.
  • Herhangi bir çalışma sayfasından tüm koşullu biçimlendirmeyi kaldırmak için aşağıdaki gibi 'Sil' yöntemini kullanabiliriz:
Cells.FormatConditions.Delete

Ilginç makaleler...