EXCEL VBA'DA COLOR INDEX (RENK İNDEKSİ)

 

EXCEL VBA RENK İNDEKSİ NEDİR?

VBA COLOR INDEX, her sayıya önceden atanmış rengi almak için sayısal sayılarla kullanılan özelliktir. 1'den 56'ya kadar bir sayı dizini atayabiliriz ve bu sayıların her biri farklı renkleri temsil eder.

Ayrıca, Renk ve Renk Endeksi özelliklerini kullanarak renkleri uygulayabiliriz. Ancak, bu ikisi arasında bir fark vardır ve bunu birazdan tartışacağız.

Aşağıdaki resim her sayının karşılık geldiği rengi göstermektedir.

Renk İndeksi


ÖNEMLİ NOKTALAR

  • VBA Renk İndeksi, önceden atanmış rengi elde etmek için sayısal sayılarla kullanılır.
  • VBA Renk İndeksinde vbRed, vbBlack, vbWhite, vbGreen, vbMagenta, vbCyan, vbBlue, vbYellow gibi 8 tip sabit renk vardır
  • Kırmızı, Yeşil ve Mavi renklerinin karışımından oluşan kendi rengimizi oluşturmak için RGB fonksiyonunu kullanabiliriz.
  • Ayrıca COLOR veya COLOR INDX özelliğini “xlNone” olarak ayarlayarak hücrenin rengini kaldırabiliriz.
  • Seçim aralığını değişkene ayarlayıp, kullanıcının rengi kaldırmak için butona tıklamasına izin vererek renk temizleme işlemini dinamik hale getirebiliriz.

Excel VBA Renk İndeksinin Sözdizimi

VBA Renk Endeksi özelliğinin sözdizimi aşağıdadır:

Range(“Gereken Aralık”).Interior.ColorIndex = (1 ile 56 arasında herhangi bir sayı)

Sözdizimi garip görünebilir, ancak Renk Endeksi özelliğini anlamanın en iyi yolu budur.

Range(“Gerekli Aralık [Required Range]”): Renk biçimlendirmesini uygulamak için hangi hücreleri biçimlendireceğimize karar vermeliyiz. Bu nedenle, hücre adreslerini çift tırnak işareti içinde içeren aralık özelliğini sağlamak ilk gerekliliktir.

Örneğin A1 ile A10 aralığını aşağıdaki gibi seçiyoruz.

VBA Renk İndeksi - Giriş örneği

İç: VBA RANGE özelliği kullanılarak aralık seçildikten sonra , seçilen aralıkla ne yapmamız gerektiğine karar vermemiz gerekir. Dolayısıyla, hücrenin rengini değiştireceğimiz için RANGE özelliğinin “İç [Interior]” özelliğini seçmemiz gerekir .

Aralık özelliği parantezinden sonra nokta (.) girerek aralığın İç özelliğini seçebiliriz.

VBA Renk İndeksi - Giriş örneği 1

Renk İndeksi: İç kısım seçildikten sonra hücrenin rengini değiştireceğimiz için renk indeksi özelliğine karar vermemiz gerekiyor.

VBA Renk İndeksi - Giriş örneği - dizin

1'den 56'ya Kadar Herhangi Bir Sayı: Renk endeksi özelliği seçildikten sonra, eşittir işaretini girerek 1 ile 56 arasında endeks numarasını ayarlamamız gerekir. Bir sayı atamak için, hangi endeks numarasının hangi rengi tuttuğunu bilmemiz gerekir.


Renk ve Renk İndeksi Özelliği Nasıl Kullanılır ?

Daha önce de söylediğimiz gibi hücrenin rengini iki şekilde ayarlayabiliriz; COLOR özelliğini ve VBA COLOR INDEX özelliğini kullanarak.

1 – Renk Özelliğini Kullanma

COLOR özelliğini kullanmanın sözdizimi, bu yazıda daha önce ele aldığımız COLOR INDEX özelliğine benzer. Ancak, COLOR özelliğiyle herhangi bir dizin numarası kullanmayacağız, bunun yerine VBA'nın yerleşik renklerini kullanacağız.

8 adet yerleşik VBA rengimiz var. Bunlar:

  1. vbRed
  2. vbBlack
  3. vbWhite
  4. vbGreen
  5. vbMagenta
  6. vbCyan
  7. vbBlue
  8. vbYellow

Yukarıdaki renkleri kullanarak aşağıdaki renkleri elde edeceğiz.

VBA Renk İndeksi - Renk Özelliği

Sub Example1()

Range(“A1”).Interior.Color= vbGreen

End Sub

Aşağıdaki kod A1 hücresinin arka plan rengini maviye değiştirecektir.

Yukarıdaki kodu kopyalayıp Visual Basic Editor penceresine yapıştırın .

VBA Renk İndeksi - Renk Özelliği - kod

Bu kodu Visual Basic Editor penceresinde çalıştır düğmesine basarak çalıştırın veya F5 kısayol tuşunu kullanarak A1 hücresinin arka plan rengini Mavi olarak değiştirin.

VBA Renk İndeksi - Renk Özelliği - vbblue

COLOR özelliği altında mevcut 8 sabit renkten herhangi birini kullanabiliriz.

Rengi Değiştirmek İçin RGB Fonksiyonu: 8 sabit yerleşik rengi kullanmak yerine, RGB fonksiyonunu kullanarak rengi ihtiyacımıza göre herhangi bir renge değiştirebiliriz.

Aşağıda VBA'da RGB fonksiyonunun sözdizimi yer almaktadır.

RGB(Red As Integer, Green As Integer, Blue As Integer)

KIRMIZI, YEŞİL ve MAVİ renklerinin karışımından kendi rengimizi yaratabiliriz.

Her renk tam sayı kabul ettiğinden KIRMIZI Endeks numarası, YEŞİL Endeks numarası ve MAVİ Endeks numarasını bilmek gerekir.

Örneğin A1 hücresine sadece kırmızı renk arka plan uygulamak istiyorsak RGB fonksiyonunun RED argümanına 250 vermemiz, diğer renklerin 0 olması gerekiyor.

Sub Color_Example1()

Range(“A1”).Interior.Color = RGB(250, 0, 0)

End Sub

Sadece Kırmızı Rengi Uygulamak İçin

Bu, A1 hücresinin arka plan rengini Kırmızı olarak değiştirecektir.

VBA Renk İndeksi - Renk Özelliği - Kırmızı

Aynı şekilde Yeşil ve Mavi renkleri de kullanabiliriz.

Sadece Yeşil Rengi Uygulamak İçin

Sub Color_Example1()

Range(“A1”).Interior.Color = RGB(0, 250, 0)   

End Sub

Sadece Mavi Rengi Uygulamak İçin

Sub Color_Example1()

Range(“A1”).Interior.Color = RGB(0, 0, 250)

End Sub

Diğer renkleri test etmek için, hangi rengi uyguladığını görmek için herhangi bir sayı kombinasyonu verebiliriz. Örneğin, aşağıdaki kodda, sırasıyla Kırmızı için 200, Yeşil için 300 ve Mavi için 400 argümanları verdik.

Sub Color_Example1()

Range(“A1”).Interior.Color = RGB(200, 300, 400)

End Sub

Bu kodu çalıştırdığımızda A1 hücresinde aşağıdaki arka plan rengini elde edeceğiz.

VBA Renk İndeksi - Renk Özelliği - mavi

2 – Renk Endeksi Özelliğini Kullanma

COLOR özelliğini kullanmak yerine COLOR INDEX özelliğini de kullanabiliriz. Ancak, VBA COLOR INDEX özelliği çok sınırlı renklere sahiptir.

Sadece 1'den 56'ya kadar indeks numarası verebiliriz.

Örneğin A1 hücresinin arkaplan rengini Safran olarak değiştirmek istiyorsak COLOR INDEX numarasını 46 olarak kullanmamız gerekmektedir.

Sub Color_Example1()

Range(“A1”).Interior.ColorIndex = 46

End Sub

Bu, A1 hücresinin arka plan rengini aşağıdaki gibi Safran'a değiştirecektir.

VBA Renk İndeksi - Renk Özelliği - Safran

Bunun için VBA'da COLOR INDEX özelliğini kullandığımızda 1 ile 56 arasında herhangi bir sayıyı kullanabiliriz.

Örnekler

Örnek 1 – COLOR Özelliğini Kullanarak Yazı Tipi Rengini Değiştirme

VBA COLOR Index özelliği yazı tipi rengini değiştirmek için de kullanılabilir. Örneğin, A1 hücresindeki şu değere bakın.

VBA Renk İndeksi - Örnek 1

A1 hücresinin arka plan rengini Yeşil ve yazı rengini Beyaz olarak değiştirmemiz gerektiğini varsayalım. COLOR özelliğini kullanmadan önce aşağıdaki iki özelliği kullanmamız gerekir.

  • İç mekan (Interior): Arka plan rengini değiştirmek için.
  • Yazı Tipi (Font): Yazı tipi rengini değiştirmek için.

Aşağıdaki kod arka plan rengini Yeşil'e, yazı rengini ise Beyaz'a değiştirecektir.

Sub Example1()

Range(“A1”).Interior.Color = vbGreen

Range(“A1”).Font.Color = vbWhite

End Sub

Aşağıdaki sonucu almak için bu kodu F5 tuşuna basarak çalıştırın.

VBA Renk İndeksi - Örnek 1-Çıktı

Örnek 2 – Renk Endeksi Numaralarının Tüm Renklerini Listeleyin

VBA COLOR INDEX sayılarını kullanırken 1'den 56'ya kadar dizin sayıları verebiliriz. Ancak hangi sayının hangi rengi tuttuğunu hatırlayamayız. Hayatımızı kolaylaştırmak için, sayıları ve tuttukları renkleri listeleyen aşağıdakilere sahibiz.

Sub Example2()

Dim R As Integer
Dim C As Integer
Dim ColorNumber As Integer

ColorNumber = 1

For R = 1 To 8

    For C = 1 To 7

        Cells(R, C).Interior.ColorIndex = ColorNumber
        ColorNumber = ColorNumber + 1
    Next C

Next R

End Sub

Bu kodu çalıştırdığımızda aşağıdaki renk matrisini elde edeceğiz.

VBA Renk İndeksi - Örnek 2 - renk matrisi

Yukarıdaki renk tablosuna bakarak ihtiyacımız olan renge göre renk indeks numarasını uygulayabiliriz.

Kopyaları Buldunuz mu?

Şimdiye kadar öğrendiğimiz gibi, Renk Endeksi özelliği 1'den 56'ya kadar tam sayı alır ve 56 farklı renk verir. Ancak, yukarıdaki renk matrisini incelersek, birçok yinelenen değere sahibiz.

COLOR INDEX özelliğine sahip 10 adet yinelenen renk var. Resim, yinelenen renkleri ve bunlarla ilişkili sayıları gösteriyor. Genel olarak, Color Index özelliği numaralarına sahip yalnızca 46 adet benzersiz rengimiz var.

VBA Renk İndeksi - Yinelenenler

Excel VBA'da Renkleri Temizle

Renk hücrelere arka plan rengi olarak uygulandığında, bazen bunları kaldırmamız gerekebilir. Bu nedenle, rengin hücrelerden nasıl kaldırılacağını anlamak önemlidir.

Renk indeks numarasını veya VBA sabit renklerini kullanmak yerine, renkleri kaldırmak için xlNone özelliğini kullanmamız gerekiyor .

Sub Remove_Color()

Range(“A1”).Interior.ColorIndex = xlNone

End Sub

Örneğin aşağıdaki koda bakın.

A1 hücresinde aşağıdaki renk arka planımız var.

VBA Renk Endeksi - Şeffaf Renk - siyah

Yukarıdaki kodu çalıştırdığımızda, A1 hücresinin renk indeksi özelliği none olarak ayarlanacaktır, yani A1 hücresinin arka plan rengi kaldırılacaktır.

VBA Renk İndeksi - Rengi Temizle - Çıktı

Yukarıdaki kod yalnızca A1 hücresinden rengi kaldıracaktır. Ancak, kodu daha dinamik hale getirmemiz gerekiyor, yani kullanıcılar rengi kaldırmak istedikleri hücre aralığını seçecek ve seçilen hücre aralığından rengi kaldırmak için düğmeye tıklayacak.

Aralığı Dinamik Hale Getirin

Aşağıdaki koda bakın.

Sub Remove_Color()

Dim Rng As Range

Set Rng = Selection

Rng.Interior.Color = xlNone

End Sub

Öncelikle kodu kopyalayıp Visual Basic Editor penceresine yapıştıralım .

VBA Renk İndeksi - Aralık Dinamik

Daha sonra çalışma sayfasına dikdörtgen şeklindeki bir düğme ekleyin .

Şekil Ekle

Bu şekli çalışma kağıdına yerleştirin.

Dikdörtgen Ekle

Arka plan rengini kaldırmak için buraya tıklayın şeklinde metni girin .

Dikdörtgen Ekle - Metin

Şekle sağ tıklayın ve Makro Ata seçeneğini seçin.

Dikdörtgen Ekle - Makro Ata

Remove_Color makro adını seçin .

Dikdörtgen Ekle - Rengi kaldır

Daha sonra Tamam'a tıklayın ve Remove_Color makrosu bu şekle atanacaktır.

Şimdi, arka plan rengini kaldırmamız gereken hücre aralığını seçin. Örneğin, A1:A8 aralığındaki hücre aralığını seçtik.

Dikdörtgen Ekle - Aralığı seç

Hedeflenen aralığı seçtikten sonra makronun atandığı butona tıklayın.

Dikdörtgen Ekle - düğme tıklaması

İşte, makronun atandığı butona tıkladığımız anda seçili aralığın arka plan rengi kaldırılmış oluyor.

Bu şekilde bu buton aracılığıyla makroyu seçip çalıştırarak VBA'da arka plan rengini kaldırabiliriz.

Dikkat Edilmesi Gereken Önemli Noktalar

  • Renk ve Renk İndeksi VBA'daki özelliklerdir.
  • VBA renk indeksini ve renk özelliklerini uygulayabilmek için öncelikle hücre aralığını veya hedeflenen hücre aralığını belirtmemiz gerekmektedir.
  • VBA renk indeksi özelliği için yalnızca 1'den 56'ya kadar indeks numaraları verebiliriz. Eğer sayı bu aralıkta değilse, o zaman dizin aralık dışı hatası alırız .
  • 1'den 56'ya kadar, renk indeksi özelliğini kullandığımızda ortaya çıkan 10 adet yinelenen renk vardır.
  • RGB fonksiyonu 3 argüman alır ve bu argümanların hepsi zorunludur. Giriş olarak sadece tam sayı verebiliriz.

1. VBA’da Renk İndeksi’nin kullanımı nedir?

8 sabit VBA renginin ötesinde herhangi bir rengi uygulamak için, 1'den 56'ya kadar tam sayı vererek istenilen rengi elde edebiliriz. Ancak rengi tutan sayının farkında olmak gerekir.

2. Excel'de renk kodu indeksini nasıl bulabilirim?

Renk kodu indeksini almak için aşağıdaki kodu kullanın. Unutmayın, hücrelerde tüm 56 rengi depolayacaktır.

Sub Color_Code_Index()
    Dim R As Integer
    Dim C As Integer
    Dim ColorNumber As Integer
        ColorNumber = 1
        For R = 1 To 8
                    For C = 1 To 7
                     Cells(R,C).Value = ColorNumber
                      Cells(R, C).Interior.ColorIndex = ColorNumber
                      ColorNumber = ColorNumber + 1
                     Next C
       Next R
End Sub

3. VBA Renk İndeksi Neden Çalışmıyor?

VBA Renk İndeksi sadece 1 ile 56 arasındaki değerleri alır. İndeks numarasını bu aralığın dışında verdiğinizde, dizin aralık dışı hatası alırız.

4. Excel'de VBA renk indeksi nasıl bulunur?

Aşağıdaki kodu kullanarak hücrelerdeki renk ve indeks numaralarını alacağız.

Sub Color_Code_Index()
    Dim R As Integer
    Dim C As Integer
    Dim ColorNumber As Integer
        ColorNumber = 1
        For R = 1 To 8
                    For C = 1 To 7
                     Cells(R,C).Value = ColorNumber
                      Cells(R, C).Interior.ColorIndex = ColorNumber
                      ColorNumber = ColorNumber + 1
                     Next C
       Next R
End Sub


Bu kodu çalıştırdığımızda aşağıdaki renk matrisini elde edeceğiz.

VBA Renk İndeksi - Örnek 2 - renk matrisi


Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...