Özellik ikonu

Interior.Color

İndirme izni yok

Genel Bakış

Interior.Color (Interior.Color property), bir hücrenin ya da hücre aralığının dolgu (arka plan) rengini döndüren veya ayarlayan özelliktir. Renk, RGB işleviyle ya da vbRed gibi sabitlerle verilir ve Long türünde tek bir sayı olarak saklanır. Makrolarla tabloları durumlarına göre renklendirmek, renkleri okuyup çözümlemek ve dolguyu temizlemek için kullanılır.

Söz dizimi​

Özellik, bir Range nesnesinin Interior alt nesnesi üzerinden kullanılır. Hem okunabilir hem yazılabilir:
VBA 2 satır
ifade.Color = RGB(255, 192, 0)   ' rengi ayarlar
renk = ifade.Color               ' rengi okur
  • ifade: Zorunlu. Bir Interior nesnesini döndüren ifade; örneğin Range("A1:C5").Interior ya da Cells(2, 1).Interior.
  • Color: Değer olarak Variant içinde Long bir sayı alır ve verir; atama sırasında RGB işlevinin sonucu, bir renk sabiti ya da onaltılı değer verilebilir. Varsayılan bir değeri yoktur.
  • Dönüş değeri: Aralıktaki tüm hücreler aynı renkteyse o rengin sayısı; farklı renkler varsa Null döner. Bu yüzden sonucu Long yerine Variant bir değişkene aktarmak daha güvenlidir.

Renk değeri nasıl oluşur​

Renk sayısı, kırmızı (R), yeşil (G) ve mavi (B) bileşenlerinden şu formülle üretilir: R + G * 256 + B * 65536. Yani bileşen sırası BGR'dir; onaltılı yazarsanız &HBBGGRR biçimini kullanmanız gerekir. Bileşenlerin her biri 0 ile 255 arasındadır. Bileşenleri geri almak için Mod ve tamsayı bölme işleçlerinden yararlanılır.
  • RGB(r, g, b): Üç bileşenden Long değeri üretir; en okunaklı yoldur.
  • vbBlack, vbWhite: Siyah (0) ve beyaz (16777215).
  • vbRed, vbGreen, vbBlue: Kırmızı (255), yeşil (65280) ve mavi (16711680).
  • vbYellow, vbCyan, vbMagenta: Sarı (65535), camgöbeği (16776960) ve macenta (16711935).

Color, ColorIndex ve ThemeColor ilişkisi​

Interior nesnesinde renk birkaç özellikle denetlenir. Color 16 milyonu aşkın rengi destekler. ColorIndex ise eski 56 renklik palete dayanır; Color atadığınızda Excel ColorIndex değerini en yakın palet rengine günceller. ThemeColor ve TintAndShade tema renklerini kullanır; bunlardan birini ayarlamak Color değerini, Color atamak da tema renginin etkisini değiştirir.
Dolguyu tamamen kaldırmak için şu iki yoldan biri kullanılır:
VBA 2 satır
Range("A1:C5").Interior.Pattern = xlNone
Range("A1:C5").Interior.ColorIndex = xlColorIndexNone
Dolgusuz bir hücrenin Color değeri beyaz (16777215) olarak okunur. Hücrenin gerçekten dolgulu olup olmadığını anlamak için Interior.Pattern değerine bakın.

1. Stok düzeyine göre satır renklendirme​

Stok miktarı 20'nin altındaki ürünler açık kırmızı, diğerleri açık yeşil boyanacak. Makro her satıra uyguladığı rengin sayısal değerini C sütununa da yazar. Kodu standart bir modüle (Ekle > Modül) yapıştırın.
VBA 18 satır
Option Explicit

Sub StokRenklendir()
    Dim ws As Worksheet
    Dim r As Long

    Set ws = ActiveSheet
    For r = 2 To 9
        ' Stok 20'nin altındaysa açık kırmızı, değilse açık yeşil
        If ws.Cells(r, 2).Value < 20 Then
            ws.Cells(r, 1).Resize(1, 2).Interior.Color = RGB(255, 199, 206)
        Else
            ws.Cells(r, 1).Resize(1, 2).Interior.Color = RGB(198, 239, 206)
        End If
        ' Uygulanan rengin sayısal değerini C sütununa yaz
        ws.Cells(r, 3).Value = ws.Cells(r, 1).Interior.Color
    Next r
End Sub
Interior.Color
Formülünü incelemek için bir hücre seçin.
ABC
1ÜrünStokRenk Kodu
2Kalem12013561798
3Defter1513551615
4Silgi8013561798
5Cetvel813551615
6Dosya3413561798
7Klasör1913551615
8Zımba5213561798
9Bant613551615
Stok KontrolExcelDepo v1.0.0
Stoku yeterli olan Kalem satırı yeşile, stoku 20'nin altındaki Defter satırı kırmızıya boyanır. C2 hücresindeki 13561798 değeri yeşil dolgunun, C3 hücresindeki 13551615 değeri ise kırmızı dolgunun Long karşılığıdır. Aynı renkteki satırların kodları birbirine eşittir.

2. Dolgu rengini okuyup RGB bileşenlerine ayırma​

Makro dört bölge adını farklı renklere boyar, her hücrenin Interior.Color değerini okur ve B sütununa yazar. Ardından bu sayıdan kırmızı, yeşil ve mavi bileşenleri hesaplayıp C, D ve E sütunlarına yerleştirir. Kodu standart bir modüle yapıştırın.
VBA 25 satır
Option Explicit

Sub RenkCozumle()
    Dim ws As Worksheet
    Dim renkler As Variant
    Dim i As Long
    Dim c As Long

    Set ws = ActiveSheet
    renkler = Array(RGB(255, 192, 0), RGB(0, 176, 80), RGB(0, 112, 192), RGB(192, 0, 0))

    For i = 0 To 3
        ' Bölge adının hücresini boya
        ws.Cells(i + 2, 1).Interior.Color = renkler(i)

        ' Rengi tek sayı olarak oku
        c = ws.Cells(i + 2, 1).Interior.Color
        ws.Cells(i + 2, 2).Value = c

        ' Sayıyı R, G ve B bileşenlerine ayır
        ws.Cells(i + 2, 3).Value = c Mod 256
        ws.Cells(i + 2, 4).Value = (c \ 256) Mod 256
        ws.Cells(i + 2, 5).Value = c \ 65536
    Next i
End Sub
Interior.Color
Formülünü incelemek için bir hücre seçin.
ABCDE
1BölgeRenk KoduKırmızıYeşilMavi
2Marmara494072551920
3Ege5287936017680
4Akdeniz126115840112192
5Karadeniz19219200
Renk AnaliziExcelDepo v1.0.0
Marmara hücresinin renk kodu B2'de 49407 olarak görünür. Bu sayı, RGB bileşenleri C2, D2 ve E2 hücrelerinde 255, 192 ve 0 olarak geri elde edilir. Bileşenleri RGB işlevine verirseniz aynı renk kodunu yeniden üretirsiniz. Yani sayı, R + G * 256 + B * 65536 toplamıdır.

3. Zebra desenli dolgu ve dolguyu temizleme​

Makro başlık satırını koyu maviye boyar. Veri satırlarında çift numaralı satırlara açık mavi dolgu verir, tek numaralı satırların dolgusunu kaldırır. D sütununa her satırın dolgu durumunu yazar. Kodu standart bir modüle yapıştırın.
VBA 31 satır
Option Explicit

Sub ZebraDolgu()
    Dim ws As Worksheet
    Dim r As Long

    Set ws = ActiveSheet

    ' Başlık satırı: koyu mavi dolgu, beyaz yazı
    With ws.Range("A1:D1")
        .Interior.Color = RGB(31, 78, 121)
        .Font.Color = vbWhite
    End With

    For r = 2 To 7
        If r Mod 2 = 0 Then
            ' Çift satırlara açık mavi dolgu ver
            ws.Range(ws.Cells(r, 1), ws.Cells(r, 3)).Interior.Color = RGB(221, 235, 247)
        Else
            ' Tek satırlarda dolguyu tamamen kaldır
            ws.Range(ws.Cells(r, 1), ws.Cells(r, 3)).Interior.Pattern = xlNone
        End If

        ' Dolgu durumunu Pattern özelliğiyle denetle
        If ws.Cells(r, 1).Interior.Pattern = xlNone Then
            ws.Cells(r, 4).Value = "Dolgusuz"
        Else
            ws.Cells(r, 4).Value = "Dolgulu"
        End If
    Next r
End Sub
Interior.Color
Formülünü incelemek için bir hücre seçin.
ABCD
1PersonelDepartmanMaaşDolgu Durumu
2Ayşe YılmazMuhasebe32.500,00Dolgulu
3Mehmet DemirSatış28.750,00Dolgusuz
4Fatma Kayaİnsan Kaynakları30.200,00Dolgulu
5Ali ÇelikLojistik26.400,00Dolgusuz
6Zeynep ArslanBilgi İşlem41.800,00Dolgulu
7Hasan ÖztürkSatış27.300,00Dolgusuz
Personel ListesiExcelDepo v1.0.0
Çift numaralı satırlarda, örneğin ikinci satırda D2 hücresi Dolgulu sonucunu verir. Tek numaralı satırlarda, örneğin üçüncü satırda D3 hücresi Dolgusuz olur. Dolgu durumunu anlamak için Color yerine Pattern özelliğine bakılır, çünkü dolgusuz hücrenin Color değeri de beyaz olarak okunur.

Kullanırken dikkat edin​

  • Bileşen sırası BGR'dir: Onaltılı değer yazarken sıra &HBBGGRR biçimindedir; yani &HFF0000 kırmızı değil mavidir. Karışıklığı önlemek için mümkün olduğunca RGB(kırmızı, yeşil, mavi) işlevini kullanın.
  • Beyaz ile dolgusuz aynı değildir: Dolgusuz hücrenin Color değeri 16777215 (beyaz) olarak okunur. Beyaz dolgu verilmiş hücreyle dolgusuz hücreyi ayırt etmek için Interior.Pattern özelliğini xlNone ile karşılaştırın.
  • Karışık renkli aralıkta Null döner: Birden çok hücrede farklı renkler varsa Interior.Color özelliği Null döndürür. Sonucu Long türünde bir değişkene atarsanız hata alırsınız; bu yüzden Variant kullanın ya da hücreleri tek tek okuyun.
  • Koşullu biçimlendirme renkleri görünmez: Koşullu biçimlendirmeyle verilen renkler Interior.Color ile okunmaz; özellik hücrenin kendi dolgusunu döndürür. Ekranda görünen rengi almak için DisplayFormat.Interior.Color özelliğini kullanın (Excel 2010 ve sonrası; salt okunurdur ve yalnız okuma için geçerlidir).
  • Hız ve toplu atama: Rengi her hücre için ayrı ayrı atamak yerine tüm aralığa tek seferde atayın. Çok sayıda satırı boyarken Application.ScreenUpdating değerini geçici olarak False yapmak makroyu belirgin biçimde hızlandırır; iş bitince True yapmayı unutmayın.
  • İlgili konular:
    • Range.Interior: Dolgu özelliklerine erişilen nesne.
    • Interior.ColorIndex: 56 renklik palet üzerinden renk belirler.
    • Interior.Pattern, Interior.PatternColor: Desen ve desen rengi.
    • Interior.ThemeColor, Interior.TintAndShade: Tema renkleri ve ton açıklığı.
    • Font.Color: Yazı rengini ayarlar.
    • RGB işlevi: Üç bileşenden renk sayısı üretir.
    • Range.DisplayFormat: Koşullu biçimlendirme dahil görünen biçimi verir.
    • Giriş > Yazı Tipi > Dolgu Rengi (Home > Font > Fill Color): Aynı işin arayüzden yapılan karşılığı.
Örneklerdeki makroların tamamı indirilebilir Excel dosyasındadır (.xlsm). Dosyayı açtıktan sonra makroları etkinleştirin, ardından Alt + F11 ile Visual Basic Düzenleyicisi'nde kodları inceleyebilir ve Alt + F8 ile çalıştırabilirsiniz.
Yazar
ExcelDepo
İndirme sayısı
0
Gösterim
16
İlk yayın
Güncel

Puanlar

0.00 Oylama 0 İnceleme
Geri
Üst