EXCEL VBADA LISTBOX

 


Excel'deki VBA Liste Kutusu,  bir değişkene atanmış bir listedir . VBA Liste Kutusu, Excel'deki raporların otomasyonunun bir parçası olarak diğer kullanıcıların liste kutusundan istenen değerleri seçmesine olanak tanıyan bir kullanıcı tarafından verilen öğelerin listesini içerir.


Örneğin, bir kullanıcının bir listeden ayları seçmesini istiyorsak, VBA kodu yardımıyla Excel'de bir liste kutusu oluşturabilir ve kullanıcılardan girdi değerlerini alabiliriz. Bu makale, VBA liste kutusu için eksiksiz bir rehber olacaktır.


ÖNEMLİ NOKTALAR


  • VBA Liste Kutusu, bir kullanıcı tarafından atanan ve diğer kullanıcıların istedikleri değerleri seçebilmelerine olanak sağlayan bir listedir.
  • İki tür liste kutusu vardır: Form Kontrolleri Liste Kutusu ve ActiveX Kontrolleri Liste Kutusu.
  • Varsayılan olarak, kullanıcı VBA liste kutusundan yalnızca bir öğe seçebilir.
  • Liste kutusu adını girerek VBA kodunda liste kutusunu seçebiliriz.

VBA'da Liste Kutusu Nasıl Oluşturulur?

Liste kutusu Excel'deki Geliştirici sekmesinde bulunur .

Vba Liste kutusu - Geliştirici sekmesi

İki tür VBA liste kutusu mevcuttur, yani Form Kontrolleri Liste Kutusu ve ActiveX Kontrolleri Liste Kutusu. VBA liste kutusundan bahsettiğimiz için yalnızca ActiveX Kontrolleri liste kutusundan bahsedeceğiz.

Adım 1: Liste kutusu oluşturmak için öncelikle Geliştirici sekmesine gidin.

Daha sonra Ekle seçeneği altında ActiveX Denetimleri Liste Kutusu'na tıklayın .

Vba Liste kutusu - Kutu oluşturma Adım 1

Adım 2: Liste kutusuna tıkladıktan sonra bunu çalışma sayfamıza çizmeliyiz.

Vba Liste kutusu - Kutu oluşturma Adım 2

Gördüğümüz gibi, bir dikdörtgen kutumuz var. Şimdi, liste kutusundaki değerleri almak için liste kutusunu tasarlamamız gerekiyor.

Adım 3: Ardından liste kutusuna sağ tıklayın ve Özellikler'e tıklayın .

Vba Liste kutusu - Kutu oluşturma Adım 3

Bu, aşağıdaki resimde gösterildiği gibi özellikler penceresini getirecektir:

Vba Liste kutusu - Kutu oluşturma Adım 4

Tüm özellikleri kullanmayacağız. Ancak, liste kutusunun bazı önemli özelliklerini ele alacağız.

İsim – Bu özellikte, VBA liste kutusuna bir isim verebiliriz. Şimdi, liste kutusunda kolayca erişebileceğimiz bir isim verelim.

Vba Liste kutusu - Kutu oluşturma Adım 5

Liste kutusuna bir isim verdiğimizde, liste kutusu seçildiğinde excel'deki isim kutusunda da aynı ismi göreceğiz .

Vba Liste kutusu - Kutu oluşturma Adım 6

Arka Plan Rengi – Bu özellikte, liste kutusunun arka plan rengini değiştirebiliriz.

Daha sonra açılır menüye tıklayıp, arka plan rengini isteğimize göre seçiyoruz.

Vba Liste kutusu - Kutu oluşturma Adım 7

Kenarlık Rengi ve Kenarlık Stili – Bu özelliği kullanarak liste kutusunun kenarlık rengini ve stilini değiştirebiliriz.

Vba Liste kutusu - Kutu oluşturma Adım 8

Font – Burada farklı font isimleri verebiliriz.

Vba Liste kutusu - Kutu oluşturma Adım 9

Liste Doldurma Aralığı – Burada, liste kutusunda görüntülenecek değerleri verebiliriz. Örneğin, A1 ila A7 hücrelerinde gün adları var.

Vba Liste kutusu - Kutu oluşturma Adım 10

Bu değerleri liste kutusuna alabilmek için liste doldurma aralığının altına bu hücre aralığı adresini verebiliriz.

Vba Liste kutusu - Kutu oluşturma Adım 11

Giriş aralığını verdiğimizde aşağıdaki görseldeki gibi liste kutusundaki öğelerin listesini elde edeceğiz:

Vba Liste kutusu - Kutu oluşturma Adım 12

Çoklu Seçim – Burada, kullanıcının tek bir değer veya birden fazla değer seçmesine izin verebiliriz.

Vba Liste kutusu - Kutu oluştur - Çoklu Seçim

Liste Stili – Burada, öğelerin listesini tasarlayabiliriz. Burada düz veya stil seçebiliriz. Düz ile, varsayılan kutu öğeleri listesini elde ederiz.

Vba Liste kutusu - Kutu oluştur - Liste Stili

Daha sonra stil seçeneğini seçtiğimizde aşağıdaki liste kutusu stilini elde edeceğiz.

Vba Liste kutusu - Kutu oluştur -liste kutusu stili

Çalışma sayfasında liste kutusu oluşturmanın yolu budur.


VBA Kullanarak Liste Kutusu Oluşturma

Ancak VBA kullanarak liste kutusu oluşturma süreci biraz farklıdır.

Liste kutusuna sadece isim verdiğimizi ve aşağıdaki gibi boş bir liste kutumuzun olduğunu varsayalım.

Vba Liste kutusu - Kutu oluştur - boş kutu

Adım 1: Liste kutusuna değer eklemek için bir VBA kodu yazabiliriz. Liste kutusuna çift tıklayın, bu, aşağıdaki özel alt prosedürün otomatik olarak doldurulduğu Visual Basic düzenleyici penceresini açacaktır.

Vba Liste kutusu - Kutu oluştur - VBA Kodu

Adım 2: Liste kutusuna erişmek için, Özellikler ayarları altında verdiğimiz liste kutusu adını girebiliriz . My_List_Box adını yazmaya başlayın ve bu adı gösteren IntelliSense listesini görebiliriz.

Vba Liste kutusu - Kutu oluştur -My_List_Box

Adım 3 : Sonra liste kutusunu seçin ve ardından liste kutusuyla birlikte kullanılabilen özellikleri ve yöntemleri görmek için bir nokta girin.

Vba Liste kutusu - Kutu oluşturma yöntemleri

Adım 4: Liste kutusuna değer eklemeye çalıştığımız için AddItem metodunu seçiyoruz.

Vba Liste kutusu - Kutu oluştur -AddItem

Şimdi çift tırnak içine istediğiniz değeri girin.

Vba Liste kutusu - Kutu oluştur - Değer

Adım 6: Bu kodu çalıştıralım ve liste kutusunda verilen değeri görmeliyiz.

Vba Liste kutusu - Kutu oluştur - çalıştır

Adım 7: Şimdi, birden fazla değer eklemek için birden fazla satır kod yazmamız gerekiyor. Ancak, List File Range özelliğini kullanarak hücrelere referans verebiliriz.

Vba Liste kutusu - Kutu oluştur - Liste Aralığı Doldur

Adım 8: Sonra bu özelliği seçin, eşittir işaretini girin ve ardından hücre adresini çift tırnak içinde A1:A7 şeklinde girin.

Vba Liste kutusu - Kutu oluştur - özellik

Şimdi bu kodu çalıştırdığımızda Excel hücre referansı A1:A7'den liste kutusundaki değerlerin listesini alacağız.

Vba Liste kutusu - Kutu oluştur -son çıktı

UserForm'da Liste Kutusu Nasıl Oluşturulur?

VBA'da liste kutusu kullanıcı formunun en üstüne oluşturulur; kullanıcı formu oluşturulmadan liste kutusuna erişemeyiz.

Adım 1: Öncelikle Visual Basic Editor penceresinde Ekle sekmesine gelip Kullanıcı Formu'na tıklayın .

Vba Liste kutusu -Kullanıcı Formu 1

Kullanıcı formuna tıkladığımızda aşağıdaki gibi bir kullanıcı formu ve beraberinde araç kutusu eklenecektir.

Kullanıcı Formu 2

Şimdi araç kutusundan kullanıcı formuna bir liste kutusu ekleyebiliriz.

Adım 2: Daha sonra araç kutusundan liste kutusuna tıklayın.

Kullanıcı Formu 3

Adım 3: Araç kutusundan liste kutusunu seçtikten sonra bunu kullanıcı formuna çizin.

Kullanıcı Formu 4-alet kutusu

Adım 4: Liste kutusu eklendikten sonra F4 tuşuna basarak bu listenin özelliklerine ulaşabiliriz.

Kullanıcı Formu 5

Bu özellikler penceresi önceki özellikler penceresine benzer. Şimdi, liste kutusunun işlevselliğini görmek için özelliklerle oynayabiliriz.

Adım 5: Liste kutusuyla oynamak için VBA kodlamasını gösterelim.

Daha sonra kullanıcı formuna (liste kutusuna değil) çift tıkladığımızda aşağıdaki otomatik abonelik prosedürünü göreceğiz.

Kullanıcı Formu 6

Bu otomatik başlatılan makro, kullanıcı formuna her tıklandığında kullanılır. Liste kutusuna değerler girmemiz gerekir.

Adım 6: Ardından aşağıdaki kodu kopyalayıp Visual Basic Editor penceresine yapıştırın.  

Sub UserForm_Click()       

UserForm1.ListBox1.AddItem “Pazartesi”

UserForm1.ListBox1.AddItem “Salı”   

UserForm1.ListBox1.AddItem “Çarşamba”   

UserForm1.ListBox1.AddItem “Perşembe”   

UserForm1.ListBox1.AddItem “Cuma”   

UserForm1.ListBox1.AddItem “Cumartesi”   

UserForm1.ListBox1.AddItem “Pazar”

End Sub

Yukarıdaki kod, kullanıcı formuna her tıkladığımızda liste kutusuna değerleri ekleyecektir.

Adım 7: Bu kodu çalıştırdığımızda karşımıza aşağıdaki gibi boş bir kullanıcı formu ve liste kutusu gelecektir.

Kullanıcı Formu 7

Liste kutusuna değer eklemek için kullanıcı formuna tıklayın. Ardından liste kutusuna eklenen değerleri göreceğiz.

Kullanıcı Formu 8

Alternatif Kod:

Kodun her satırına bir değer eklemek için liste kutusu adını kullanmak yerine, WITH ifadesini kullanarak kullanıcı formunu ve liste kutusunu bir kez kullanabilir ve öğenin satırını satır satır ekleyebiliriz. Aşağıdaki kod değerleri liste kutusuna ekleyecektir.

Private Sub UserForm_Click()       

With UserForm1.ListBox1   

.AddItem “Monday”   

.AddItem “Tuesday”

.AddItem “Wednesday”

.AddItem “Thursday”

.AddItem “Friday”

.AddItem “Saturday”

.AddItem “Sunday”

End With

End Sub

Liste Kutusundan Değeri Sakla

Kullanıcı liste kutusundaki değeri seçtiğinde, o değeri çalışma sayfasının bir yerinde saklamamız gerekiyor.

Daha sonra liste kutusuna çift tıkladığımızda otomatik alt prosedürünü göreceğiz.

Kullanıcı Formu 9

Şimdi yukarıdaki prosedür için aşağıdaki kodu ekleyelim.

Sub ListBox1_Click()        

Range(“A1”).Value = UserForm1.ListBox1.Value

End Sub

Kullanıcı liste kutusundan bir şey seçtiğinde, bu değeri A1 hücresinde saklayacaktır. Örneğin, bu kodu çalıştıralım ve aşağıdaki gibi boş bir liste kutusu göreceğiz.

Kullanıcı Formu 10

Daha sonra kullanıcı formunun herhangi bir yerine tıklayın, değerler liste kutusunu dolduracaktır.

Kullanıcı Formu 8

Şimdi liste kutusundan herhangi bir değeri seçtiğinizde aynı değer A1 hücresine kaydedilecektir.

Kullanıcı Formu 11

Çarşamba değerini seçtik ve aynı değer A1 hücresine kaydedildi.


Liste Kutusuna Dinamik Kontrol Nasıl Eklenir?

Yukarıdaki kodda List Box kullanıcı formunda elle oluşturulmuştur. Ancak dinamik bir list box kullanarak list box ekleme sürecini otomatikleştirebiliriz.

Adım 1: İlk olarak aşağıdaki gibi boş bir kullanıcı formu oluşturun:

Dinamik Kontrol - boş kullanıcı formu

Adım 2: Daha sonra araç kutusundan kullanıcı formuna bir komut düğmesi ekleyin.

Dinamik Kontrol -komut düğmesi

Adım 3: Şimdi komut düğmesine sağ tıklayın ve ardından Özellikler'e tıklayın .

Dinamik Kontrol -Özellikler

Adım 4: Bu özellik penceresini açacaktır. Başlığı Liste Kutusu Ekle olarak verin .

Dinamik Kontrol -Başlık

Başlığı değiştirdiğimizde komut butonunda aynı ismi görüyoruz.

Adım 5: Ardından komut butonuna çift tıklayın ve aşağıdaki otomatik başlatma prosedürünü göreceğiz.

Dinamik Kontrol -prosedür

Adım 6: Bu prosedürde aşağıdaki kodu ekleyin.

Sub Add_Dynamic_Listbox() 

‘Add Dynamic List Box and assign it to object ‘LstBx’ 

Dim LstBx As ListBox 

Set LstBx = UserForm3.Controls.Add(“Forms.ListBox.1”)’’

”List Box Position 

LstBx.Left = 20 

LstBx.Top = 10 

End Sub

VBA'da Liste Kutusu Denetimine Öğeler Nasıl Eklenir?

Liste kutusu denetimine öğe eklemek için VBA kodu yazabiliriz veya liste kutusunun özellik penceresinden yararlanabiliriz.

Adım 1: Öncelikle hücre aralığına gerekli değerleri girin.

Öğeleri ekle - değer

Adım 2: Visual Basic Editor penceresinde, kullanıcı formunun üstünde oluşturulan liste kutusunu seçin. Sonra, aşağıdaki özellikler penceresini getirmek için özellikler kısayol tuşu F4'e basın.

Öğeler ekle - userform

Adım 3: Ardından, özellikler penceresinde ve satır kaynağında aşağı doğru kaydırın ve liste kutusuna kaydırılacak değerlerin bulunduğu hücre adresini, yani A1 ile A7 aralığını verin.

Öğeleri ekle - rowsource

Hücre aralığını sağladığımız anda liste kutusunda değerlerin göründüğünü görebiliriz.

Öğeler ekle - görünür

Adlandırılmış Aralık Kullanılarak

Hücre aralığını sağlamak iyi bir uygulama değildir; bir listeyi dinamik hale getirmek için Excel'de adlandırılmış bir aralık kullanmamız gerekir .

Adım 1: Öncelikle A1 ile A7 arasındaki hücre aralığını seçin ve ad kutusuna “Week_Days” adını verin.

Adlandırılmış Aralık-Hafta_Günleri

Adım 2: Şimdi liste kutusunun satır kaynağı özelliğine bu adlandırılmış aralık adını girin.

Adlandırılmış Aralık-Satır Kaynağı

VBA Kodunu Kullanma

Yukarıdaki iki yöntemin dışında liste kutusuna değer eklemek için VBA kodunu yazabiliriz.

İlkine bir değer eklemek için aşağıdaki gibi liste kutusu adına göre liste kutusuna erişmemiz gerekiyor.

VBA kod adı

Liste kutusu adını girdikten sonra noktayı girin ve öğe ekleme yöntemine ulaşın.

VBA kodu-Additem

Daha sonra çift tırnak içine değeri girin.

VBA kodu-Pazartesi

Benzer şekilde, başka bir değer eklemek için başka bir kod satırı yazın.

VBA kodu-Salı

Bu şekilde kod yazarak liste kutusuna değerler ekleyebiliriz.

VBA Kullanarak Liste Kutusu Denetiminden Öğeler Nasıl Temizlenir?

Liste Kutusu'ndaki öğeleri temizlemek için, ya özellikleri kullanmamız ya da bir VBA kodu yazmamız gerekir. Öğeleri liste kutusundan temizlemek için VBA'daki liste kutusunun clear metodunu kullanabiliriz.

temizlemek

Bu, ListBox1'deki öğeleri temizleyecektir.

VBA'da Liste Kutusu Sabitleri

Liste kutusunun çoklu seçim özelliğinde 3 adet sabit seçeneğimiz var ve bunlar şunlardır:

devamlı
  • 0 – fmÇokluSeçTek
  • 1 – fmMultiSelectMulti
  • 2 – fmMultiSelectGenişletilmiş

Bu 3 sabiti detaylıca açıklayalım.

  • 0 – fmMultiSelectSingle – Bu seçeneği seçtiğimizde kullanıcılar liste kutusundan sadece bir öğe seçebilirler.
  • 1 – fmMultiSelectMulti – Bu seçeneği kullanırsak, kullanıcının liste kutusundan birden fazla değer seçmesine izin verebiliriz.
  • 2 – fmMultiSelectExtended – Bu, kullanıcının SHIFT tuşunu kullanarak ve fare düğmesine tıklayarak veya ok tuşlarını kullanarak liste kutusundan değerleri seçmesine veya seçimlerini kaldırmasına olanak tanıyan özel bir özelliktir.

Dikkat Edilmesi Gereken Önemli Noktalar

  • Çalışma sayfasında liste kutusunu çizdiğimizde, değerleri eklemek için liste doldurma aralığı özelliğini kullanmamız gerekir. Ancak kullanıcı formunda liste kutusunu kullandığımızda, değerleri eklemek için satır kaynağı özelliğini kullanmamız gerekir.
  • Liste doldurma aralığında veya satır kaynağında hücre adresini çift tırnak işareti olmadan girmemiz gerekiyor.
  • Çalışma sayfasına ActiveX Denetimleri Liste Kutusu'nu çizdiğimizde tasarım modunun işaretini kaldırmamız ve ardından liste kutusunu kullanmamız gerekiyor.
  • VBA liste kutusunun arka plan rengini, liste kutusunun background özelliğini kullanarak değiştirebiliriz.

1. VBA'da liste kutusunda arama nasıl yapılır?

Liste kutusuna eşleşen sonuçları gösterecek bir arama kutusu oluşturmak için, kelimeleri yazacağımız bir metin kutusu eklememiz ve ardından sonuçları eşleştirecek gelişmiş VBA kodu yazmamız gerekiyor.

2. Excel VBA'da liste kutusu nasıl düzenlenir?

Liste kutusunun değerlerini düzenlemek için giriş aralığı değerlerini değiştirmemiz veya değerleri eklemek için kodu düzenlememiz gerekir.

3. Excel VBA'da çok sütunlu liste kutusu nasıl oluşturulur?

Çok sütunlu bir liste kutusu oluşturmak için, sütun sayısı özelliğini 1'den, istenilen sütun sayısının sayısına değiştirmemiz gerekir.

sütun sayısı

4. VBA liste kutusu neden çalışmıyor?

Liste kutusuna verilen isim farklıysa ve kodda kullanılan isim farklıysa VBA liste kutusu çalışmayacaktır.

Yorum Gönder

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