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.
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.
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.
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.
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.
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.
- 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
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.| A | B | C | |
|---|---|---|---|
| 1 | Ürün | Stok | Renk Kodu |
| 2 | Defter | 120 | 4 |
| 3 | Kalem | 8 | 3 |
| 4 | Silgi | 45 | 6 |
| 5 | Dosya | 60 | 4 |
| 6 | Zımba | 3 | 3 |
| 7 | Makas | 25 | 6 |
| 8 | Cetvel | 200 | 4 |
| 9 | Bant | 9 | 3 |
Stok ListesiExcelDepo v1.0.0
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.| A | B | C | |
|---|---|---|---|
| 1 | Ay | Fark | Yazı Rengi |
| 2 | Ocak | 15.000 | 1 |
| 3 | Şubat | -3.200 | 3 |
| 4 | Mart | 8.400 | 1 |
| 5 | Nisan | -1.250 | 3 |
| 6 | Mayıs | 22.000 | 1 |
| 7 | Haziran | -600 | 3 |
Aylık FarkExcelDepo v1.0.0
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.| A | B | C | |
|---|---|---|---|
| 1 | Şehir | Satış | Dolgu Kodu |
| 2 | Ankara | 420 | 15 |
| 3 | İzmir | 380 | 15 |
| 4 | Bursa | 150 | -4142 |
| 5 | Adana | 90 | -4142 |
| 6 | Konya | 210 | 15 |
| 7 | Antalya | 60 | -4142 |
Dolgu TemizleExcelDepo v1.0.0
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ı