Görüntüsü genelde TextBox' a yakındır. DropButtonStyle özelliği değiştirilmediği müddetçe varsayılan görüntüsünde sağ yanda aşağı doğru açılmasını sağlayacak ok buton şeklindedir. Textbox gibi görünmesine rağmen kendinde barındırdığı özellikler sayesinde bir veri katarını AddItem , RowSource gibi özellikleri ile içinde listeleyebiliyor. Bu sayede açma tuşuna bastığınızda içinde listelediği veriler arasında seçme şansınız oluyor.
Nesne içerisine veri girilmedi ise açma butonuna bastığınızda aşağıya doğru boş bir satır açılır.
Şimdi nesne içerisine birkaç yöntemden biri olan AddItem yöntemi ile 2,3 tane veri girelim :
UserForm kod sayfasını açın ve formun Initialize olayına aşağıdaki kodları ekleyin.
Kod: Tümünü seç
Private Sub UserForm_Initialize()
ComboBox1.AddItem "www.ExcelVBA.Net"
ComboBox1.AddItem "ExceLord"
ComboBox1.AddItem "VBA Makrolar"
End Sub
Şimdi diğer bir yöntem olan RowSource ile ComboBox içerisine nasıl veri alınacağını görelim. UserFormu kapatıp Sayfa1 içerisine;
A1 hücresine Excel
A2 hücresine VBA
A3 hücresine Makro
A4 hücresine Fonksiyon
yazın ve UserForm_Initialize olayına önceki kodları silip kodları aşağıdaki gibi ekleyin.
Kod: Tümünü seç
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sayfa1!A1:A4"
End Sub
ComboBox içerisinde onlarca veri olduğunu düşünelim. Bu verileri ekledikten sonra ComboBox DropButton' u tıkladığınızda tüm verileri karşınıza gelmez. Çünkü görünür durumda varsayılan ayarlara göre sadece sekiz veri olacak ve diğerlerini görmeniz için açılan listenin sağ tarafında aşağıya kaydırma çubuğunu hareket ettirmeniz gerekecek. Peki bu varsayılan adeti değiştiremez miyiz ? Elbette. Tek bir satırlık kod ilavesi ile görünmesini istediğiniz satır sayısının ayarını yapabilirsiniz. Ancak görünümün bozulmaması için görünür satır sayısını abartmamamız gerekiyor.
Kod: Tümünü seç
ComboBox1.ListRows = 16
ile görünür satır sayısını 8 'den 16' ya çıkardık. Şimdi DropButton 'a bastığınızda tek seferde 16 satırı da görebilirsiniz.
RowSource ile ComboBox'a veri alabileceğiniz farklı bir kaç yöntem daha var.
Bunlarda biri hücrelerde tanımlanmış ad ile yapılabilir. Bunun için Ekle - Ad - Tanımla seçeneklerini seçerek Çalışma kitabınızdaki adlar bölümüne bir başlık yazın ve başvuru yerini seçerek verilerinizin olduğu hücreleri işaretleyin , ardından tamam diyerek çıkmış olun. Kodunuzu artık aşağıdaki gibi yazabilirsiniz:
Kod: Tümünü seç
Private Sub UserForm_Initialize()
ComboBox1.ListRows = 16
ComboBox1.RowSource = "veriler"
End Sub
Kod: Tümünü seç
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sayfa1!A1:A32000"
End Sub
Kod: Tümünü seç
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sayfa1!a1:a" & Range("a65536").End(xlUp).Row
End Sub
MachEntry özelliğinin 3 olayı vardır.
0- fmMatchEntryFirstLetter
1- fmMatchEntryComplete
2- fmMatchEntryNone
fmMatchEntryFirstLetter ile ComboBox içine yazmaya çalıştığınızda her tuşa basışınızda bastığınız harfleri yanyana yazdırmaya müsaade etmeyecek ve sadece basılı harf ile başlayan veriyi bulmaya çalışacaktır.
fmMatchEntryComplete ile ComboBox içine yazmaya çalıştığınızda her tuşa basışınızda harfleri yanyana yazmaya devam etmenize müsaade edecek ve o harfler ile başlayan veriyi bulmaya çalışarak ComboBox 'ta otomatik tamamlama yoluna gidecektir.
fmMatchEntryNone ile ise hiçbir aramaya gitmeyecek sizin tüm verinizi girmenize müsaade edecektir.
ComboBox1.Clear ile eklenmiş tüm verilerinizi sliebilirsiniz.
ComboBox1.ColumnHeads = True ile verilerinizin başlık sütun adını alabilirsiniz.
ComboBox1.ListStyle = fmListStyleOption ile verilerin başında seçenek düğmesi görünmesini sağlar
ComboBox1.Style = fmStyleDropDownList ile ComboBox içine veri girmesi iptal edilmiş olup sadece aşağı açılan listeden veri seçilmesine izin verilir.
ComboBox1.ShowDropButtonWhen = fmShowDropButtonWhenFocus ile ComboBox görüntümüzün tamamen TextBox görüntüsüne benzemesini sağlayabiliriz. Sadece ComboBox focus'landığında yani seçildiğinde , DropButton görünür ve aşağı açılan listeyi açmanıza yardımcı olur. Bunu denemek istiyorsanız UserForm üserine eklediğiniz ComboBox yanına örneğin bir TextBox ekleyin ve TextBox'ın TabIndex değerini 0 yapın. Formu çalıştırdığınızda iki tane TextBox göreceksiniz.
Fakat aslında ComboBox olan nesne seçildiğinde ok işaretinin çıkarak liste seçimi için DropButton'un aktif olduğu görünecek.