Vba: cara menerapkan pemformatan bersyarat ke sel
Anda dapat menggunakan metode berikut di VBA untuk menerapkan pemformatan bersyarat ke sel:
Metode 1: Terapkan pemformatan bersyarat berdasarkan suatu kondisi
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
Metode 2: Terapkan pemformatan bersyarat berdasarkan beberapa kondisi
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
Metode 3: Hapus semua aturan pemformatan bersyarat dari sel
Sub RemoveConditionalFormatting()
ActiveSheet.Cells.FormatConditions.Delete
End Sub
Contoh berikut memperlihatkan cara menggunakan setiap metode dalam praktik dengan kumpulan data berikut di Excel:
Contoh 1: Terapkan pemformatan bersyarat berdasarkan suatu kondisi
Kita bisa menggunakan makro berikut untuk mengisi sel dalam rentang B2:B11 yang memiliki nilai lebih besar dari 30 dengan latar belakang hijau, font hitam, dan gaya teks tebal:
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
Saat kami menjalankan makro ini, kami menerima keluaran berikut:
Perhatikan bahwa setiap sel dalam rentang B2:B11 yang memiliki nilai lebih besar dari 30 tunduk pada pemformatan bersyarat.
Setiap sel dengan nilai sama dengan atau kurang dari 30 dibiarkan begitu saja.
Contoh 2: Terapkan pemformatan bersyarat berdasarkan beberapa kondisi
Kita bisa menggunakan makro berikut untuk menerapkan pemformatan bersyarat ke sel dalam rentang A2:A11 berdasarkan nama timnya:
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
Saat kami menjalankan makro ini, kami menerima keluaran berikut:
Perhatikan bahwa sel dengan nama tim “Mavericks”, “Blazers”, dan “Celtics” semuanya tunduk pada format bersyarat tertentu.
Satu-satunya tim dengan nama “Lakers” yang tersisa karena kami belum menentukan aturan pemformatan bersyarat apa pun untuk sel dengan nama tim tersebut.
Contoh 3: Hapus semua aturan pemformatan bersyarat dari sel
Terakhir, kita bisa menggunakan makro berikut untuk menghapus semua aturan pemformatan bersyarat dari sel pada lembar saat ini:
Sub RemoveConditionalFormatting()
ActiveSheet.Cells.FormatConditions.Delete
End Sub
Saat kami menjalankan makro ini, kami menerima keluaran berikut:
Perhatikan bahwa semua pemformatan bersyarat telah dihapus dari setiap sel.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di VBA:
VBA: Cara menghitung kemunculan karakter dalam sebuah string
VBA: cara memeriksa apakah suatu string berisi string lain
VBA: rumus untuk “Jika” sel berisi”