Bu örnekte, "A1" hücresindeki yazı tipi rengini değiştirmek için RGB'yi kullanan VBA yazı tipi renk kodlarını kullanıyoruz.


Yazı tipi rengini kırmızıya değiştirir. VBA kodunu çalıştırdıktan sonra , yazı tipi renginin aşağıda görüldüğü gibi değiştiğini görebilirsiniz.

- VBA'da verilerinizin görsel görünümünü geliştirmek için Excel'deki hücrelerin yazı tipi rengini değiştirebilirsiniz.
- Tek bir hücrenin veya hücre aralığının yazı tipi rengini ayarlamak için Font.Color özelliğini kullanın.
- Renkler RGB fonksiyonu kullanılarak veya vbRed, vbBlue ve diğerleri gibi önceden tanımlanmış renk sabitleri kullanılarak belirtilebilir.
- Koşullu ifadeleri kullanarak, hücre değerleri veya belirli anahtar sözcüklerin varlığı gibi belirli koşullara veya ölçütlere göre yazı tipi rengini değiştirebilirsiniz.
- ColorIndex özelliği, Excel'de önceden tanımlanmış renk indeksi değerlerini kullanarak yazı tipi renklerini ayarlamanıza olanak tanır.
- Bir hücrenin yazı tipi rengini başka bir hücrenin yazı tipiyle eşleştirmek için Font.Color özelliğini kaynak hücreden alıp hedef hücreye atayabilirsiniz.
VBA Kullanarak Yazı Rengi Nasıl Değiştirilir?
Verilen koşullara göre VBA Font Renginin otomatik olarak nasıl ayarlanacağını öğrenmek için aşağıdaki adımları izleyin.
Adım 1: Yeni bir Çalışma Kitabı oluşturun. Bunun için Excel araç çubuğundaki “Geliştirici” bölümüne gidin . Ardından, geliştirici sekmesinde “Visual Basic”i seçin.

VBA (Visual Basic for Applications) Editörü açılacaktır. Başlık çubuğunda “Ekle” düğmesine tıklayın ve “Modül” seçeneğini seçin.

Bu örnekte, verilen aralıktaki pozitif ve negatif sayıları ayırmak istiyorsunuz. Bu, VBA Font Color özelliği kullanılarak yapılabilir.

Adım 2: Pozitif ve negatif sayıları kategorize etmek için bir alt prosedür tanımlayın.

Adım 3: Bir Çalışma Sayfası değişkeni tanımlayın ve bu alt prosedürün çalışacağı çalışma sayfasını ayarlayın.

Adım 4: Üzerinde çalışılacak tablo için bir aralık başlatın. Daha önce tanımlanan değişkenle çalışacağı çalışma sayfasını belirtin.

Adım 5: Aralık boyunca bir FOR döngüsü bildirmeye başlayın.

VBA'da hücre değerinin 0'dan küçük olup olmadığını kontrol eden bir If – Else ifadesi tanımlayın , ardından o hücre değeri için VBA Yazı Rengi kodlarını kırmızı olarak ayarlayın.
Pozitif değerler için Else koşulunu tanımlayın ve VBA Yazı Rengini aşağıda gösterildiği gibi siyah tutun.

Kod:
Sub ChangeFontColorBasedOnCondition()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet3”)
Dim trange As Range
Set trange = ws.Range(“B1:B10”)
For Each cell In trange
If cell.Value < 0 Then
cell.Font.Color = vbRed
Else
cell.Font.Color = vbBlack
End If
Next cell
End Sub
Adım 7: VBA Editöründeki araç çubuğundaki “F5” tuşuna veya yeşil düğmeye basarak VBA kodunu çalıştırın.

Çıktıyı görüntülemek için çalışma sayfasına geri dönün.

VBA Yazı Tipi Rengi kodlarının değiştirilebileceği farklı yolları gösteren bazı heyecan verici örneklere bakalım.
Örnekler
Aşağıdaki örneklerde Font.Color özelliğinin farklı kullanım şekillerini görün.
Örnek 1 – Renk indeksini kullanarak VBA Yazı Tipi Rengi
Bir dizi değer verildiğinde, bunları VBA Font.ColorIndex fonksiyonunu ( Color Index ) kullanarak farklı renklere dönüştürmemiz gerekir . Excel VBA'da yaklaşık 56 renk indeksi olduğu bilinen bir gerçektir. Bu, satırlar arasında çalışan bir FOR döngüsü kullanılarak görüntülenebilir.

Adım 1: Öncelikle alt rutini 56 yazı renginin hepsini gösterecek şekilde adlandırın.

Adım 2: Bu alt rutinin üzerinde çalışacağı çalışma sayfasına bir isim verin.

Adım 3: Bu alt rutinin çalışacağı değer aralığını ayarlayın.

Adım 4: Yinelemeli bir değişken başlatın ve bir FOR döngüsü başlatın.

Adım 5: Hücre değerlerinin 56'dan küçük veya eşit olup olmadığını kontrol edin ve hücrelerde verilen değerlere göre doldurun.

Ayrıca daha fazla görünürlük için yazı tipini isteğe bağlı olarak kalınlaştırabilirsiniz.
Kod:
Sub ShowAllFontColorNumbers()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet4”)
Dim targetRange As Range
Set targetRange = ws.Range(“A1:D14”)
Dim c As Range
For Each c In targetRange
If c.Value <= 56 Then
c.Font.ColorIndex = c.Value
c.Font.Bold = True
End If
Next c
End Sub
Adım 6: Yukarıdaki kodu F5'e basarak çalıştırın. Kodu çalıştırdıktan sonra çıktıyı görüntülemek için çalışma sayfasına geri dönün.

Yukarıdaki tablodan şu sonucu çıkarabiliriz:
- VBA Yazı Rengi Siyah İndeks 1'dir.
- VBA Yazı Rengi Beyaz İndeks 2'dir.
Örnek 2 – ColorProperty Kullanarak VBA Yazı Tipi Rengi
Pozitif, negatif, sıfır ve sayısal olmayan değerlerden oluşan bir tablo verildiğinde, her değer türünü farklı yazı renklerine göre kategorilere ayırabilirsiniz.

Adım 1: Farklı kategorilere göre yazı tipi rengini değiştirmek için bir alt prosedür tanımlayın.

Adım 2: Bir çalışma sayfası değişkeni tanımlayın ve bu değişkeni bu alt prosedürün çalışacağı çalışma sayfasına başlatın.

Adım 3: Alt rutinin çalışacağı aralığı tanımlayın.

Adım 4: Yinelemeli bir değişken başlatın ve bunu bir FOR döngüsünü başlatmak için kullanın.

Adım 5: Değerin sayısal, yani bir sayı olup olmadığını kontrol edin. Ardından, bir double VBA veri türü başlatın ve bunu hücre değerinin tamsayı değerine atayın.

Excel VBA'daki Val() fonksiyonu, bir dize veya değişken veri türünü hassas bir şekilde kayan nokta değerine dönüştürmek için kullanılır.
Adım 6: Önceki adımda atanan değişkenle birden fazla koşulu kontrol etmek için bir Switch Case ile başlayın.

Adım 7: Anahtar durumundaki koşulları tanımlayın.

- Eğer değer 0'dan küçük ise yazı rengi macentaya dönüşür.
- Eğer değer 0'a eşitse yazı rengi maviye döner.
- Eğer değer 0'dan büyükse yazı rengi yeşile döner.
- Koşullardan hiçbiri sağlanmıyorsa (sayısal olmayan değerler) yazı rengi aynı, yani siyah kalır.
Adım 8: IsNumeric fonksiyonu için If koşulunu sonlandırın ve FOR döngüsüne devam edin.

Kod:
Sub ChangeFontColorBasedOnCategories()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet1”)
Dim targetRange As Range
Set targetRange = ws.Range(“A1:A10”)
Dim cell As Range
For Each cell In targetRange
If IsNumeric(cell.Value) Then
Dim cellValue As Double
cellValue = Val(cell.Value)
Select Case cellValue
Case Is < 0
cell.Font.Color = vbMagenta
Case 0
cell.Font.Color = vbBlue
Case Is > 0
cell.Font.Color = vbGreen
Case Else
cell.Font.Color = vbBlack
End Select
End If
Next cell
End Sub
Adım 9: Alt prosedürü çalıştırın ve ardından çıktıyı görüntülemek için çalışma sayfasına gidin.

Örnek 3 – RGB Fonksiyonlu VBA Renk Özelliği
İşte "Kritik" aktiviteleri önceliklendirmek için vurgulamanız gereken bir örnek. Bu , VBA'da RGB Fonksiyonlu Font Rengi kullanılarak yapılabilir .

Adım 1: “Kritik” aktivitelerin yazı tipi rengini değiştirmek için bir alt prosedür tanımlayın.

Adım 2: Bu alt prosedürün üzerinde çalışacağı çalışma sayfasına bir isim verin.

Adım 3: Bu alt prosedürün çalışacağı tablonun aralığını tanımlayın.

Adım 4: Yazı tipi rengini değiştirmek istediğiniz metni bir dize değişkeninde tanımlayın.

Adım 5: Tabloda çalışacak bir for döngüsü tanımlayın.

Adım 6: If-Else ifadesini kullanarak hücre değerinin aranan metne karşılık gelip gelmediğini kontrol edin.

Eğer doğruysa VBA Font rengini kırmızıya değiştirin.
Adım 7: Bir Else koşulu başlatın; aksi takdirde, diğer hücrelerdeki yazı tiplerini yeşil olarak değiştirin.

Kod:
Sub ChangeFontColorBasedOnText()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(“Sheet5”)
Dim targetRange As Range
Set targetRange = ws.Range(“A1:A10”)
Dim searchText As String
searchText = “Critical”
For Each cell In targetRange
If cell.Value = searchText Then
cell.Font.Color = RGB(255, 0, 0)
Else
cell.Font.Color = RGB(0, 255, 0)
End If
Next cell
End Sub
Adım 8: Yukarıdaki VBA kodunu çalıştırın. Ardından çalışma sayfasına gidin ve çıktıyı görün.

Dikkat Edilmesi Gereken Önemli Noktalar
- Yanlış veya beklenmeyen verilerden kaynaklanan sorunları önlemek için, yazı tipi renkleriyle değiştirdiğiniz hücrelerdeki verilerin geçerli ve tutarlı olduğundan emin olun.
- Okunabilirliği korumak için hücrenin arka plan rengine karşı yeterli kontrast sunan yazı tipi renklerini seçin. Yetersiz kontrast, verilerin yorumlanmasını zorlaştırabilir.
- Renk seçimlerinin çeşitli Excel sürümlerinde veya yazdırıldığında farklı şekilde işlenebileceğini unutmayın. Tutarlılığı sağlamak için kodunuzu farklı platformlarda test edin.
- Özellikle önemli sayıda hücreyle çalışırken, yazı tipi rengi değişikliklerinin verimli bir şekilde yürütülmesi için VBA kodunuzu optimize edin. Verimsiz kod Excel uygulamanızı yavaşlatabilir.
VBA'da Font.Color özelliğini kullanın. Koşulunuzu değerlendirin. Font.Color'ı koşula göre istediğiniz renge ayarlayın. Örneğin,
If cell.Value < 0 Then
cell.Font.Color = RGB(255, 0, 0)
End If
Hücredeki yazı tipi rengini negatif bir değerse kırmızıya ayarlar. "Hücre" değişkeni tanımlanmış herhangi bir aralık olabilir.
Font.Color özelliğini kullanarak: yazı tipi renginizi değiştirmek istediğiniz hücre değerini belirtin ve ardından rengi değiştirin. Örneğin,
If cell.Value = “Important” Then
cell.Font.Color = RGB(0,255,0)
End If
“Important” dizesine sahip hücrenin yazı tipi renginin yeşil renkte olmasını sağlar.
Set kullanarak aralığı tanımlayın. Hücreler arasında yineleme yapmak için bir döngü kullanın. Font.Color özelliğini istediğiniz renge ayarlayın. Örneğin, cell.Font.Color = RGB(0, 128, 0) rengi yeşile ayarlar.
Kaynak hücrenin Font.Color özelliğini alın. Bu renk değerini hedef hücrenin Font.Color'ına atayın.
Örnek kullanım şu şekilde görünecektir:
targetCell.Font.Color = sourceCell.Font.Color
