Özellik ikonu

BackColor

İndirme izni yok

Genel Bakış

BackColor (Arka Plan Rengi), UserForm ve onun üzerindeki denetimlerin (TextBox, Label, CommandButton, Frame vb.) arka plan rengini okuyan ya da değiştiren özelliktir. Renk, Long türünde bir sayıyla ifade edilir; bu sayı genellikle RGB işleviyle, bir renk sabitiyle ya da onaltılık (hex) değerle verilir. Hücre dolgusu için kullanılan Interior.Color ile aynı sayı düzenini kullanır.

Söz dizimi​

Özellik hem okunabilir hem yazılabilir:
VBA 2 satır
nesne.BackColor = renk
degisken = nesne.BackColor
  • nesne: BackColor özelliği olan bir UserForm ya da denetim (ör. UserForm1, TextBox1, Label1). Zorunludur.
  • renk: Long türünde renk değeri; RGB(kırmızı, yeşil, mavi) sonucu, vbRed gibi bir sabit ya da &H00FF0000& gibi bir hex değer olabilir. Özelliği okurken de aynı türde sayı döner.
  • Varsayılan: UserForm, Label, CommandButton ve Frame için &H8000000F& (düğme yüzü rengi), TextBox, ComboBox ve ListBox için &H80000005& (pencere arka planı) değeridir.

Renk değerleri ve sabitler​

Renk değeri, mavi, yeşil ve kırmızı bileşenlerinin bu sırayla birleşmesinden oluşan bir sayıdır: değer = kırmızı + yeşil x 256 + mavi x 65536. Bu nedenle onaltılık yazımda sıra &H00BBGGRR& biçimindedir; yani kırmızı en sağdadır. Sık kullanılan değerler:
  • RGB(r, g, b): Her bileşen 0-255 arasındadır; en okunaklı ve güvenli yöntemdir.
  • vbBlack (0), vbRed (255), vbGreen (65280), vbYellow (65535), vbBlue (16711680), vbMagenta (16711935), vbCyan (16776960), vbWhite (16777215): Hazır renk sabitleridir.
  • Sistem renkleri: &H8000000F& düğme yüzü, &H80000005& pencere arka planı gibi değerler Windows renk düzenine bağlıdır; kullanıcının temasına göre değişir.

Hangi nesnelerde kullanılır​

BackColor, MSForms kitaplığındaki nesnelerde bulunur: UserForm, Frame, MultiPage, Label, TextBox, ComboBox, ListBox, CommandButton, ToggleButton, CheckBox, OptionButton ve ScrollBar gibi. Çalışma sayfasına yerleştirilen ActiveX denetimlerinde de aynı özellik vardır; örneğin sayfa modülünde TextBox1.BackColor ya da başka yerden OLEObjects("TextBox1").Object.BackColor biçiminde erişilir.
Hücreler için BackColor yoktur; hücre dolgusu Range.Interior.Color özelliğiyle ayarlanır. Label ve TextBox gibi denetimlerde BackStyle özelliği fmBackStyleTransparent (0) ise arka plan şeffaf olur ve BackColor görünmez; fmBackStyleOpaque (1) ise renk görünür.

1. RGB değerlerini renk koduna çevirme​

Sayfada her rengin kırmızı, yeşil ve mavi bileşenleri yazılıdır. Aşağıdaki kodu standart bir modüle yapıştırın; makro RGB işleviyle BackColor özelliğinin kabul ettiği Long değerini E sütununa yazar ve aynı değeri hücre dolgusu olarak da uygular.
VBA 11 satır
Option Explicit

Sub RenkKodlariniYaz()
    Dim satir As Long
    For satir = 2 To 7
        ' RGB işlevi BackColor özelliğinin kabul ettiği Long değerini üretir
        Cells(satir, 5).Value = RGB(Cells(satir, 2).Value, Cells(satir, 3).Value, Cells(satir, 4).Value)
        ' Aynı sayı hücre dolgusunda Interior.Color ile de kullanılır
        Cells(satir, 5).Interior.Color = Cells(satir, 5).Value
    Next satir
End Sub
BackColor
Formülünü incelemek için bir hücre seçin.
ABCDE
1Renk AdıRGBRenk Kodu
2Kırmızı25500255
3Yeşil0128032768
4Mavi0025516711680
5Sarı255255065535
6Gri19219219212632256
7Beyaz25525525516777215
Renk KodlarıExcelDepo v1.0.0
Kırmızı için kod 255, koyu yeşil için 32768, mavi için 16711680, beyaz için 16777215 olarak yazıldı. Mavi bileşenin 65536 ile çarpılması nedeniyle saf mavi, saf kırmızıdan çok daha büyük bir sayıya karşılık gelir. Bu sayıların her biri bir denetimin BackColor özelliğine doğrudan atanabilir.

2. UserForm ve denetimlerin rengini ayarlama​

Bu örnekte UserForm1 adlı bir form olduğunu ve üzerinde TextBox1, Label1 ve CommandButton1 denetimlerinin bulunduğunu varsayın. Kodu standart bir modüle yapıştırın; form açılmadan önce BackColor özellikleri atanır. Örnek form açtığı için burada çalıştırılmaz; tabloda atanan renkler özetlenmiştir.
VBA 16 satır
Option Explicit

Sub FormuRenklendirVeAc()
    With UserForm1
        ' Formun kendi arka planı
        .BackColor = RGB(230, 240, 250)
        ' Giriş kutusu beyaz kalsın
        .TextBox1.BackColor = vbWhite
        ' Etiketin rengi görünsün diye BackStyle opak olmalıdır
        .Label1.BackStyle = fmBackStyleOpaque
        .Label1.BackColor = RGB(255, 242, 204)
        ' Düğmeyi sistem düğme yüzü rengine döndürür
        .CommandButton1.BackColor = &H8000000F&
        .Show
    End With
End Sub
BackColor
Formülünü incelemek için bir hücre seçin.
ABC
1NesneAtanan renkTür
2UserForm1RGB(230, 240, 250)Açık mavi
3TextBox1vbWhiteSabit
4Label1RGB(255, 242, 204)Açık sarı
5CommandButton1&H8000000F&Sistem rengi
Form RenkleriExcelDepo v1.0.0
Makro çalıştığında form açılır: form zemini açık mavi, etiket açık sarı, giriş kutusu beyaz görünür; düğme ise Windows temasının düğme rengini alır. Form açıldığı için bu örnek burada çalıştırılmamıştır; kodu kendi çalışma kitabınızda deneyin.

3. BackColor değerini R, G, B bileşenlerine ayırma​

Bir denetimin BackColor özelliğinden okuduğunuz sayıyı bileşenlerine ayırmak isteyebilirsiniz. Sayfada B sütununda renk değerleri vardır. Kodu standart bir modüle yapıştırın; makro kırmızı, yeşil ve mavi bileşenleri C, D ve E sütunlarına yazar.
VBA 15 satır
Option Explicit

Sub BilesenleriAyir()
    Dim satir As Long
    Dim renk As Long
    For satir = 2 To 6
        renk = Cells(satir, 2).Value
        ' Kırmızı: en düşük 8 bit
        Cells(satir, 3).Value = renk Mod 256
        ' Yeşil: ortadaki 8 bit
        Cells(satir, 4).Value = (renk \ 256) Mod 256
        ' Mavi: en yüksek 8 bit
        Cells(satir, 5).Value = renk \ 65536
    Next satir
End Sub
BackColor
Formülünü incelemek için bir hücre seçin.
ABCDE
1Renk AdıBackColor DeğeriRGB
2Turuncu424952551650
3Koyu mavi838860800128
4Mor83887361280128
5Açık mavi15128749173216230
6Koyu yeşil3276801280
Renk ÇözümlemeExcelDepo v1.0.0
Turuncu rengin bileşenleri 255, 165 ve 0 olarak bulundu. Mor için kırmızı bileşen 128, mavi bileşen 128 değerindedir. Bu yöntem, bir denetimin BackColor değerini okuyup rengi koyulaştırmak ya da açmak gibi işlemlerde işe yarar; bileşenleri değiştirdikten sonra RGB işleviyle yeniden birleştirebilirsiniz.

Kullanırken dikkat edin​

  • Hücre için BackColor yoktur: Bir hücrenin arka planını boyamak için Range.Interior.Color kullanılır. BackColor yalnızca UserForm ve ActiveX/MSForms denetimlerinde bulunur; hücreye BackColor yazmak çalışma zamanı hatası verir.
  • Renk sırası BGR'dir: Hex değer yazarken sıra &H00BBGGRR& şeklindedir. &HFF0000& kırmızı değil maviyi verir. Karışıklık yaşamamak için mümkün olduğunca RGB işlevini kullanın.
  • Label ve TextBox'ta BackStyle: BackStyle özelliği şeffaf (fmBackStyleTransparent) ise BackColor atamanız görünür bir değişiklik yapmaz. Rengin görünmesi için BackStyle'ı opak yapın.
  • Sistem renkleri kullanıcıya göre değişir: &H8000000F& gibi 8 ile başlayan değerler sabit bir renk değil, Windows renk şeması kalemleridir. Her kullanıcıda aynı rengi istiyorsanız RGB ile kesin bir değer verin.
  • Okunabilirlik: Arka plan rengini değiştirdiğinizde ForeColor (yazı rengi) ile yeterli karşıtlık olduğundan emin olun. Koyu zeminde koyu yazı okunmaz.
  • İlgili konular: ForeColor, BorderColor, BackStyle, Interior.Color, ColorIndex, RGB işlevi, UserForm, Label, TextBox, Koşullu Biçimlendirme, OLEObjects.
Ö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
13
İlk yayın
Güncel

Puanlar

0.00 Oylama 0 İnceleme
Geri
Üst