ComboBox'lar kullanıcıların bir açılır menü listesinden bir seçenek seçmesine izin verin. ComboBox'lar, VBA UserForms'da veya bir Excel çalışma sayfasıyla oluşturulabilir. Bu öğreticide, VBA'da ve Excel çalışma sayfalarında ComboBox'ların nasıl oluşturulacağını ve değiştirileceğini öğreneceksiniz.
Listbox oluşturmayı öğrenmek istiyorsanız buraya tıklayın: VBA Listbox
Bir Onay Kutusunun nasıl oluşturulacağını öğrenmek istiyorsanız, buraya tıklayın: VBA Onay Kutusu
Excel Çalışma Sayfasında Bir ComboBox Oluşturun
Çalışma Sayfasına bir ComboBox eklemek için, şuraya gitmeniz gerekir: Geliştirici sekmesi, Tıklayın Sokmak ve ActiveX Denetimleri altında seçin Açılan kutu:
Resim 1. Çalışma Sayfasına Bir ComboBox Ekleme
Eklediğiniz ComboBox'ı seçtiğinizde, üzerine tıklayabilirsiniz. Özellikler altında Geliştirici sekmesi:
Resim 2. ComboBox Özelliklerini Değiştirin
Burada ComboBox'ın farklı özelliklerini ayarlayabilirsiniz. Başlamak için niteliği değiştirdik İsim ile cmbComboBox. Artık ComboBox'ı bu adla VBA kodunda kullanabiliriz.
VBA kodunda bir ComboBox doldurun
İlk olarak, ComboBox'ı değerlerle doldurmamız gerekiyor. Çoğu durumda, Çalışma Kitabı açıldığında bir ComboBox'ın doldurulması gerekir. Bu nedenle, ComboBox'ı nesneye yerleştirmek için bir kod koymamız gerekiyor. Çalışma kitabı, prosedür Açık. Bu prosedür, bir kullanıcı Çalışma Kitabını her açtığında yürütülür. İşte kod:
123456789 | Sheet1.cmbComboBox ile.AddItem "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"İle bitmek |
Açılır menüyü tıkladığınızda, seçebileceğiniz 5 isim göreceksiniz (John, Michael, Jennifer, Lilly ve Robert):
Resim 3. ComboBox'ı VBA'da doldurun
Bir Hücre Aralığındaki Bir ComboBox'ı Doldurun
Bir ComboBox'ı doldurmanın başka bir olası yolu, bir kullanıcının bunu yapmasına izin vermektir. Bir ComboBox, hücre aralığına bağlanabilir. Bu yaklaşımda, bir kullanıcı hücre aralığına her yeni değer girdiğinde, ComboBox bu değerle güncellenir.
Bunu etkinleştirmek istiyorsanız, şuraya gitmeniz gerekir: Özellikler ComboBox'ın ve özniteliği ayarlayın ListeFillRange hücre aralığına (bizim durumumuzda E2:E5):
Resim 4. ComboBox'ı hücre aralığından doldurun
ComboBox'ımızı, istediğimiz isimleri koyduğumuz E2:E5 aralığına bağladık (Nathan, Harry, George, Roberta). Sonuç olarak, ComboBox artık şu adlarla doldurulur:
Resim 5. Hücre aralığından Doldurulmuş ComboBox
VBA'da bir ComboBox Seçilmiş Öğesini Alın
Bir ComboBox'ın amacı, bir kullanıcı seçimi elde etmektir. Bir kullanıcının seçimini almak için bu kodu kullanmanız gerekir:
123 | Varyant Olarak Dim strSelectedItemstrSelectedItem = Sheet1.cmbComboBox.Value |
Kullanıcı seçimi öznitelikte bulunur Değer ile ilgili Sheet1.cmbComboBox nesne. Bu değer değişkene atanır. strSelectedItem:
Resim 6. VBA'daki ComboBox'tan seçilen bir değeri alın
biz seçtik Julia ComboBox'ta ve prosedürü yürüttü. Resim 5'te de görebileceğiniz gibi, strSelectedItem NS Julia, bu bizim seçtiğimiz değerdir. Şimdi bu değişkeni kodda daha fazla işleyebilirsiniz.
Bir ComboBox'ı Temizle
VBA'da bir ComboBox'ı temizlemek istiyorsanız, kullanmanız gerekir. Açık yöntemi Sheet1.lstComboBox nesne. ComboBox'taki tüm öğeleri siler. İşte kod:
1 | Sheet1.cmbComboBox.Clear |
Kodu çalıştırdığımızda, boş ComboBox'ı alırız:
Resim 7. ComboBox'ı temizleyin
Bir Kullanıcı Formunda ComboBox kullanın
Bahsettiğimiz gibi, Combobox en çok Kullanıcı Formlarında kullanılır. Bunu nasıl yapabileceğinizi açıklamak için önce bir Kullanıcı Formu ekleyeceğiz. VBA düzenleyicide, Modül adına sağ tıklayın, üzerine tıklayın. Sokmak ve Seç Kullanıcı Formu:
Resim 8. Bir Kullanıcı Formu Ekle
Ekleme denetimlerini görüntülemek için, araç kutusu. Bunu yapmak için, üzerine tıklayınaraç kutusu araç çubuğundaki simge. Bundan sonra, mevcut tüm kontrollerle pencereleri alacaksınız. üzerine tıklayabilirsiniz Açılan kutu Kullanıcı formunda oluşturmak için.
Resim 9. Kullanıcı Formuna Bir ComboBox Ekleme
ComboBox'ı adlandıracağız cmbComboBox. Değerlerle doldurmak için aşağıdaki kodu metoda koymamız gerekiyor. başlat nesnenin Kullanıcı Formu:
12345678910111213 | Özel Alt UserForm_Initialize()UserForm1.cmbComboBox ile.AddItem "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"İle bitmekAlt Bitiş |
Bu kod, bir kullanıcı Kullanıcı formunu her çalıştırdığında tetiklenir ve Combobox'ı şu 5 adla doldurur:
Resim 10. Kullanıcı formundaki değerlere sahip ComboBox
ComboBox'tan seçilen değeri almak istiyorsanız, makalenin önceki bölümlerinde açıklanan Çalışma Sayfasındaki Combobox için aynı mantığı kullanmanız gerekir.