Özellik ikonu

ColorIndex

İndirme izni yok

Genel Bakış

ColorIndex (renk dizin numarası), Excel'in 56 renklik paletindeki bir rengi numarasıyla belirleyen özelliktir. Interior, Font ve Borders nesnelerinde dolgu, yazı ve kenarlık rengini okumak ya da değiştirmek için kullanılır. Basit ve hızlı renklendirme için uygundur, ancak palet dışındaki renkler için Color özelliği gerekir.

Söz dizimi​

ColorIndex özelliği tek başına kullanılmaz, bir renk nesnesinin üzerinden yazılır:
VBA 6 satır
nesne.ColorIndex = değer
Değişken = nesne.ColorIndex

Range("A1").Interior.ColorIndex = 6
Range("A1").Font.ColorIndex = 3
Range("A1").Borders.ColorIndex = 5
  • nesne: Interior (dolgu), Font (yazı) ya da Borders (kenarlık) nesnesi; zorunludur. Grafik öğelerinin dolgu ve yazı nesnelerinde de bulunur.
  • değer: 1 ile 56 arasında palet numarası ya da xlColorIndexNone veya xlColorIndexAutomatic sabiti; yazarken zorunludur.
  • Dönüş değeri: Okunduğunda palet numarasını (Long) verir. Hücre aralığında renkler farklıysa Null döner.

Özel değerler ve sık kullanılan renkler​

Palet numaraları dışında iki özel sabit vardır:
  • xlColorIndexNone: Değeri -4142'dir. Dolgu için "dolgu yok" anlamına gelir. Dolguyu kaldırmanın en kısa yoludur.
  • xlColorIndexAutomatic: Değeri -4105'tir. Yazı ve kenarlıklarda Excel'in otomatik rengini (genellikle siyah) kullanır.
Varsayılan paletteki bazı numaralar şunlardır:
  • 1: Siyah
  • 2: Beyaz
  • 3: Kırmızı
  • 4: Parlak yeşil
  • 5: Mavi
  • 6: Sarı
  • 7: Pembe
  • 8: Turkuaz
  • 15: Açık gri (yüzde 25 gri)

ColorIndex, Color ve RGB farkı​

Excel'in paleti 56 renkle sınırlıdır. Daha geniş renk yelpazesi gerekiyorsa Color özelliğini RGB işleviyle birlikte kullanın:
VBA 2 satır
Range("A1").Interior.Color = RGB(255, 200, 0)
Range("A1").Interior.ColorIndex = 6
Color ile verdiğiniz renk paletteyse tam eşleşir, değilse ColorIndex okunurken paletteki en yakın renk numarası döner. Bu nedenle iki özellik birbirinin yerine her zaman güvenle kullanılamaz. Palet Workbook.Colors ile de değiştirilebilir; böyle bir durumda numaraların rengi dosyadan dosyaya farklı olabilir.

1. Stok durumuna göre dolgu rengi​

Stok miktarı 10'dan azsa kırmızı, 50'den azsa sarı, diğer durumlarda yeşil dolgu uygulanır. Makro, uygulanan numarayı C sütununa da yazar. Kodu standart bir modüle yapıştırın.
VBA 23 satır
Option Explicit

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

    Set ws = ActiveSheet

    For i = 2 To 9
        ' Stok miktarına göre dolgu numarasını seç
        Select Case ws.Cells(i, 2).Value
            Case Is < 10
                ws.Cells(i, 1).Resize(1, 2).Interior.ColorIndex = 3
            Case Is < 50
                ws.Cells(i, 1).Resize(1, 2).Interior.ColorIndex = 6
            Case Else
                ws.Cells(i, 1).Resize(1, 2).Interior.ColorIndex = 4
        End Select

        ' Uygulanan renk numarasını oku ve yaz
        ws.Cells(i, 3).Value = ws.Cells(i, 1).Interior.ColorIndex
    Next i
End Sub
ColorIndex
Formülünü incelemek için bir hücre seçin.
ABC
1ÜrünStokRenk Kodu
2Defter1204
3Kalem83
4Silgi456
5Dosya604
6Zımba33
7Makas256
8Cetvel2004
9Bant93
Stok ListesiExcelDepo v1.0.0
Defter satırında stok yüksek olduğu için dolgu yeşil olur ve C2 hücresine 4 yazılır. Kalem satırında stok 10'un altında olduğundan dolgu kırmızıdır ve C3 hücresinde 3 görülür. Zımba satırı da kırmızı renklenir, C6 hücresindeki değer 3 olur.

2. Negatif değerlerde yazı rengi​

Aylık farkı gösteren B sütununda eksi değerler kırmızı, diğerleri siyah yazılır. Makro, her hücrenin yazı rengi numarasını C sütununa yazar. Kodu standart bir modüle yapıştırın.
VBA 18 satır
Option Explicit

Sub NegatifKirmizi()
    Dim hucre As Range

    For Each hucre In ActiveSheet.Range("B2:B7").Cells
        If hucre.Value < 0 Then
            ' Eksi değer: kırmızı yazı
            hucre.Font.ColorIndex = 3
        Else
            ' Diğer değerler: siyah yazı
            hucre.Font.ColorIndex = 1
        End If

        ' Yazı rengi numarasını yanındaki hücreye yaz
        hucre.Offset(0, 1).Value = hucre.Font.ColorIndex
    Next hucre
End Sub
ColorIndex
Formülünü incelemek için bir hücre seçin.
ABC
1AyFarkYazı Rengi
2Ocak15.0001
3Şubat-3.2003
4Mart8.4001
5Nisan-1.2503
6Mayıs22.0001
7Haziran-6003
Aylık FarkExcelDepo v1.0.0
Ocak satırında fark pozitif olduğu için yazı siyah kalır ve C2 hücresine 1 yazılır. Şubat satırındaki eksi değer kırmızı yazılır, C3 hücresinde 3 görülür. Aynı biçimde Nisan için 3, Haziran için 3 değeri yazılır.

3. Dolguyu kaldırma ve dolgu durumunu okuma​

Makro önce tablo alanını açık griye boyar, sonra satışı 200'ün altında kalan satırların dolgusunu xlColorIndexNone ile kaldırır. C sütununa her satırın son dolgu kodunu yazar. Kodu standart bir modüle yapıştırın.
VBA 21 satır
Option Explicit

Sub DolguYonet()
    Dim ws As Worksheet
    Dim i As Long

    Set ws = ActiveSheet

    ' Tüm veri alanını açık griye boya
    ws.Range("A2:B7").Interior.ColorIndex = 15

    For i = 2 To 7
        ' Satışı düşük olan satırların dolgusunu kaldır
        If ws.Cells(i, 2).Value < 200 Then
            ws.Cells(i, 1).Resize(1, 2).Interior.ColorIndex = xlColorIndexNone
        End If

        ' Son dolgu kodunu yaz
        ws.Cells(i, 3).Value = ws.Cells(i, 1).Interior.ColorIndex
    Next i
End Sub
ColorIndex
Formülünü incelemek için bir hücre seçin.
ABC
1ŞehirSatışDolgu Kodu
2Ankara42015
3İzmir38015
4Bursa150-4142
5Adana90-4142
6Konya21015
7Antalya60-4142
Dolgu TemizleExcelDepo v1.0.0
Ankara satırı 200'ün üzerinde olduğu için gri kalır ve C2 hücresine 15 yazılır. Bursa satırının dolgusu kaldırıldığından C4 hücresinde -4142 görülür; bu değer xlColorIndexNone sabitinin sayısal karşılığıdır. Adana için de C5 hücresinde -4142 değeri yer alır.

Kullanırken dikkat edin​

  • Palet sınırı: ColorIndex yalnızca 56 renkle çalışır. Başka bir renk için Color ya da RGB kullanın. Aksi halde okuma sırasında Excel en yakın palet rengini döndürür.
  • Aralıkta Null değeri: Birden çok hücreden oluşan bir aralıkta renkler farklıysa ColorIndex Null döner. Sonucu bir Long değişkene atarsanız hata alırsınız; renkleri hücre hücre okuyun ya da Variant kullanın.
  • Dolgu yok ile beyaz aynı değildir: Dolguyu kaldırmak için 2 (beyaz) değil, xlColorIndexNone kullanın. Beyaz dolgu ızgara çizgilerini gizler, dolgu yok ise çizgilerin görünmesini sağlar.
  • Koşullu biçimlendirme: ColorIndex, koşullu biçimlendirmeden gelen rengi vermez; yalnızca hücreye elle ya da makroyla verilmiş rengi okur. Koşullu biçimin rengi için DisplayFormat özelliğini kullanın.
  • Tema renkleri: Tema rengiyle boyanmış bir hücrede ColorIndex yine bir numara döndürür, ancak bu numara temadaki rengin yaklaşık karşılığıdır. Tema ile çalışacaksanız ThemeColor ve TintAndShade özelliklerine bakın.
  • İlgili konular:
    • Interior.Color ve Font.Color özellikleri
    • RGB işlevi
    • ThemeColor ve TintAndShade özellikleri
    • PatternColorIndex ve Pattern özellikleri
    • Borders nesnesi
    • DisplayFormat özelliği
    • FormatConditions koleksiyonu (Koşullu Biçimlendirme)
    • EĞER işlevi ile koşullu biçimlendirme kuralları
Ö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
12
İlk yayın
Güncel

Puanlar

0.00 Oylama 0 İnceleme
Geri
Üst