Vba: yinelenen değerlere koşullu biçimlendirme uygulayın
Belirli bir aralıktaki yinelenen değerlere koşullu biçimlendirme uygulamak için VBA’da aşağıdaki temel sözdizimini kullanabilirsiniz:
Sub ConditionalFormatDuplicates()
Dim rg As Range
Dim uv As UniqueValues
'specify range to apply conditional formatting
Set rg = Range(" A2:A11 ")
'clear any existing conditional formatting
rg.FormatConditions.Delete
'identify duplicate values in range A2:A11
Set uv = rg.FormatConditions.AddUniqueValues
uv.DupeUnique = xlDuplicate
'apply conditional formatting to duplicate values
uv.Interior.Color = vbBlue
uv.Font.Color = vbWhite
uv.Font.Bold = True
End Sub
Bu özel örnek, Excel’deki geçerli sayfanın A2:A11 aralığındaki yinelenen değerlere koşullu biçimlendirme uygular.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: Yinelenen Değerlere Koşullu Biçimlendirme Uygulamak için VBA’yı Kullanma
Excel’de aşağıdaki değer sütununa sahip olduğumuzu varsayalım:
A sütunundaki yinelenen değerlere aşağıdaki koşullu biçimlendirmeyi uygulamak istediğimizi varsayalım:
- Mavi arka plan
- Siyah metin
- Kalın yazı
Bunun için aşağıdaki makroyu oluşturabiliriz:
Sub ConditionalFormatDuplicates()
Dim rg As Range
Dim uv As UniqueValues
'specify range to apply conditional formatting
Set rg = Range(" A2:A11 ")
'clear any existing conditional formatting
rg.FormatConditions.Delete
'identify duplicate values in range A2:A11
Set uv = rg.FormatConditions.AddUniqueValues
uv.DupeUnique = xlDuplicate
'apply conditional formatting to duplicate values
uv.Interior.Color = vbBlue
uv.Font.Color = vbWhite
uv.Font.Bold = True
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
A sütunundaki her hücreye yinelenen değerle koşullu biçimlendirmenin uygulandığını unutmayın.
Farklı bir hücre aralığına koşullu biçimlendirme uygulamak istiyorsanız makrodaki A2:A11’i farklı bir aralıkla değiştirmeniz yeterlidir.
Ayrıca, geçerli sayfadaki hücrelerdeki tüm koşullu biçimlendirmeyi kaldırmak istiyorsanız, bunu yapmak için aşağıdaki makroyu oluşturabilirsiniz:
Sub RemoveConditionalFormatting()
ActiveSheet.Cells.FormatConditions.Delete
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Hücrelerdeki tüm koşullu biçimlendirmelerin 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: Aralıktaki benzersiz değerler nasıl sayılır?
VBA: Belirli bir metin içeren hücreler nasıl sayılır?
VBA: COUNTIF ve COUNTIFS işlevleri nasıl yazılır?