Vba: hücrelere koşullu biçimlendirme nasıl uygulanır?
Hücrelere koşullu biçimlendirme uygulamak için VBA’da aşağıdaki yöntemleri kullanabilirsiniz:
Yöntem 1: Bir koşula göre koşullu biçimlendirme uygulama
Sub ConditionalFormatOne()
Dim rg As Range
Dim cond As FormatCondition
'specify range to apply conditional formatting
Set rg = Range(" B2:B11 ")
'clear any existing conditional formatting
rg.FormatConditions.Delete
'apply conditional formatting to any cell in range B2:B11 with value greater than 30
Set cond = rg.FormatConditions.Add(xlCellValue, xlGreater, " =30 ")
'define conditional formatting to use
With cond
.Interior.Color = vbGreen
.Font.Color = vbBlack
.Font.Bold = True
End With
End Sub
Yöntem 2: Birden çok koşula dayalı olarak koşullu biçimlendirme uygulama
Sub ConditionalFormatMultiple()
Dim rg As Range
Dim cond1 As FormatCondition, cond2 As FormatCondition, cond3 As FormatCondition
'specify range to apply conditional formatting
Set rg = Range(" A2:A11 ")
'clear any existing conditional formatting
rg.FormatConditions.Delete
'specify rules for conditional formatting
Set cond1 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Mavericks ”)
Set cond2 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Blazers ”)
Set cond3 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Celtics ”)
'define conditional formatting to use
With cond1
.Interior.Color = vbBlue
.Font.Color = vbWhite
.Font.Italic = True
End With
With cond2
.Interior.Color = vbRed
.Font.Color = vbWhite
.Font.Bold = True
End With
With cond3
.Interior.Color = vbGreen
.Font.Color = vbBlack
End With
End Sub
Yöntem 3: Tüm koşullu biçimlendirme kurallarını hücrelerden kaldırın
Sub RemoveConditionalFormatting()
ActiveSheet.Cells.FormatConditions.Delete
End Sub
Aşağıdaki örnekler, Excel’deki aşağıdaki veri kümesiyle her yöntemin pratikte nasıl kullanılacağını gösterir:
Örnek 1: Bir koşulu temel alarak koşullu biçimlendirmeyi uygulama
B2:B11 aralığında değeri 30’dan büyük olan hücreleri yeşil arka plan, siyah yazı tipi ve kalın yazı stiliyle doldurmak için aşağıdaki makroyu kullanabiliriz:
Sub ConditionalFormatOne()
Dim rg As Range
Dim cond As FormatCondition
'specify range to apply conditional formatting
Set rg = Range(" B2:B11 ")
'clear any existing conditional formatting
rg.FormatConditions.Delete
'apply conditional formatting to any cell in range B2:B11 with value greater than 30
Set cond = rg.FormatConditions.Add(xlCellValue, xlGreater, " =30 ")
'define conditional formatting to use
With cond
.Interior.Color = vbGreen
.Font.Color = vbBlack
.Font.Bold = True
End With
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
B2:B11 aralığındaki 30’dan büyük bir değere sahip her hücrenin koşullu biçimlendirmeye tabi olduğunu unutmayın.
Değeri 30’a eşit veya daha küçük olan herhangi bir hücre basitçe bırakılır.
Örnek 2: Birden çok koşulu temel alan koşullu biçimlendirmeyi uygulama
A2:A11 aralığındaki hücrelere takım adına göre koşullu biçimlendirme uygulamak için aşağıdaki makroyu kullanabiliriz:
Sub ConditionalFormatMultiple()
Dim rg As Range
Dim cond1 As FormatCondition, cond2 As FormatCondition, cond3 As FormatCondition
'specify range to apply conditional formatting
Set rg = Range(" A2:A11 ")
'clear any existing conditional formatting
rg.FormatConditions.Delete
'specify rules for conditional formatting
Set cond1 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Mavericks ”)
Set cond2 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Blazers ”)
Set cond3 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Celtics ”)
'define conditional formatting to use
With cond1
.Interior.Color = vbBlue
.Font.Color = vbWhite
.Font.Italic = True
End With
With cond2
.Interior.Color = vbRed
.Font.Color = vbWhite
.Font.Bold = True
End With
With cond3
.Interior.Color = vbGreen
.Font.Color = vbBlack
End With
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
“Mavericks”, “Blazers” ve “Celtics” takım adlarını taşıyan hücrelerin tamamının belirli koşullu biçimlendirmeye tabi olduğunu unutmayın.
“Lakers” isimli tek takım, bu takım adına sahip hücreler için herhangi bir koşullu biçimlendirme kuralı belirlemediğimiz için yalnız bırakıldı.
Örnek 3: Tüm koşullu biçimlendirme kurallarını hücrelerden kaldırma
Son olarak, tüm koşullu biçimlendirme kurallarını geçerli sayfadaki hücrelerden kaldırmak için aşağıdaki makroyu kullanabiliriz:
Sub RemoveConditionalFormatting()
ActiveSheet.Cells.FormatConditions.Delete
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Hücrelerin her birinden tüm koşullu biçimlendirmenin kaldırıldığını unutmayın.
Ek kaynaklar
Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
VBA: Bir dizedeki karakterlerin oluşumları nasıl sayılır?
VBA: bir dizenin başka bir dize içerip içermediği nasıl kontrol edilir
VBA: hücrenin “Eğer” içermesi durumunda” formülü