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ü

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir