/ / Excel VBA'da Çoklu Liste Kutusu Seçimleri

Excel VBA'da Birden Çok Liste Kutusu Seçimi

Bu MultiSelect özelliği içinde Excel VBA bir liste kutusunda birden çok öğe seçmek bir kullanıcı izin verir.Biz oluşturacağız Userform aşağıdaki gibi görünür:

Excel VBA'da Birden Çok Liste Kutusu Seçimi

Bu Kullanıcı Formunu oluşturmak için aşağıdaki adımları uygulayın.

1. Visual Basic Düzenleyicisi'ni açın. Proje Gezgini görünmüyorsa, Görüntüle, Proje Gezgini'ni tıklatın.

2. Ekle, Kullanıcı formu'nu tıklayın. Araç Kutusu otomatik olarak görünmezse, Görünüm, Araç Kutusu'nu tıklatın. Ekranınız aşağıdaki gibi ayarlanmalıdır.

Excel VBA'da Kullanıcı Formu Ekranı Kurulumu

3. liste kutuları (ilk soldaki, sağdaki ikinci), komut düğmeleri, onay kutuları (ilk soldaki, sağdaki ikinci), kare ve seçenek düğmelerini (ilk üst ikinci ilk aşağıda ve benzeri) ekleyin.Bu tamamlandıktan sonra sonuç daha önce gösterilen Userform resmi ile tutarlı olmalıdır.Örneğin, bir liste kutusu denetimi Toolbox'tan ListBox tıklatarak oluşturun.Sonra bir liste kutusu Userform üzerinde sürükleyebilirsiniz."Türünü seç" çerçeve geldiğinde, bu çerçeve içinde üç seçenek düğmesinden yerleştirmeden önce ilk çizmek hatırlıyorum.

4. siz isimleri ve denetimlerin resim yazılarını değiştirebilirsiniz.Adları Excel VBA kodunda kullanılır. Resim yazılarını ekranınızda görünen bunlar.Denetimleri isimlerini değiştirmek için iyi bir yöntemdir, ancak yalnızca bu örnekte birkaç denetimleri olduğundan burada gerekli değildir.Userform, komut düğmeleri, onay kutularını, kare ve seçenek düğmelerini, başlığını değiştirmek için Görünüm, Özellikler penceresini tıklatın ve denetimlerin her birini tıklatın.

5. Kullanıcı formunu göstermek için çalışma sayfanıza bir komut düğmesi yerleştirin ve aşağıdaki kod satırını ekleyin:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Şimdi Sub UserForm_Initialize oluşturacağız. Userform için Show yöntemini kullandığınızda, bu sub otomatik olarak yürütülür.

6. Visual Basic Düzenleyicisi'ni açın.

7. Proje Gezgini'nde, UserForm1'e sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.

8.First, ben Integer.Declare genel bildirimler değişken türünde bölüm (kod üst kısmında) değişken.Bu şekilde bir kez değişken yeterlidir ve bunları birden çok subs içinde kullanabilirsiniz.

Dim i As Integer

9. Userform sol aþaðý açýlan listeden seçin. Initialize şu aþaðý açýlan listeden seçin.

10. Aşağıdaki kod satırlarını ekleyin:

Private Sub UserForm_Initialize()

With ListBox1
    .AddItem "Sales"
    .AddItem "Production"
    .AddItem "Logistics"
    .AddItem "Human Resources"
End With

OptionButton3.Value = True

End Sub

Açıklama: ilk liste kutusu doldurulur ve üçüncü seçenek düğmesi varsayılan ayarlanır.

Userform ilk bölümünü oluşturdunuz.Zaten temiz görünüyor olsa da, biz komut düğmeler veya diğer denetimlerin tıklattığınızda hiçbir şey henüz olmayacak.

11. Proje Gezgini'nde, UserForm1'e çift tıklayın.

12. çift tıkırtı üstünde eklemek düğme.

13. Aşağıdaki kod satırlarını ekleyin:

Private Sub CommandButton1_Click()

For i = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(i) = True Then ListBox2.AddItem ListBox1.List(i)
Next i

End Sub

Açıklama: Excel VBA birinci liste kutusunda (ilk madde için sıfır (0) listesinden liste Dizin numarası) aracılığıyla döngüler ve, seçtiyseniz, öğeyi ikinci liste kutusuna ekler.

14. çift tıkırtı üstünde belgili tanımlık çıkarmak düğme.

15. Aşağıdaki kod satırlarını ekleyin:

Private Sub CommandButton2_Click()

Dim counter As Integer
counter = 0

For i = 0 To ListBox2.ListCount - 1
    If ListBox2.Selected(i - counter) Then
        ListBox2.RemoveItem (i - counter)
        counter = counter + 1
    End If
Next i

CheckBox2.Value = False

End Sub

Açıklama: Excel VBA ikinci liste kutusu aracılığıyla döngüler ve, seçtiyseniz, öğeyi kaldırır.Sayaç değişkeni kaldırılan öğelerin sayısını kavramını içerir.

16. ilk seçenek düğmesini çift tıklatın.

17. Aşağıdaki kod satırlarını ekleyin:

Private Sub OptionButton1_Click()

ListBox1.MultiSelect = 0
ListBox2.MultiSelect = 0

End Sub

18. ikinci seçenek düğmesini çift tıklatın.

19. Aşağıdaki kod satırlarını ekleyin:

Private Sub OptionButton2_Click()

ListBox1.MultiSelect = 1
ListBox2.MultiSelect = 1

End Sub

20. üçüncü seçenek düğmesini çift tıklatın.

21. Aşağıdaki kod satırlarını ekleyin:

Private Sub OptionButton3_Click()

ListBox1.MultiSelect = 2
ListBox2.MultiSelect = 2

End Sub

Açıklama: "Türünü seç" ayarı seçenek düğmeleri tıklatılarak seçilebilir.Daha önce gösterilen Userform resim her ayarın açıklamasını verir.Bu ayarı çalışma zamanında yapılandırmak yerine, tasarım zamanında da bu ayarı yapılandırabilirsiniz.Bunu başarmak için sağ fare bir liste kutusu denetimi tıklatın ve o zaman tıkırtı üstünde mal.MultiSelect özelliği 0 - fmMultiSelectSingle, 1 - 2 - fmMultiSelectExtented veya fmMultiSelectMulti ayarlayın.

22. aşağıdaki ilk onay kutusunu çift tıklatın.

23. Aşağıdaki kod satırlarını ekleyin:

Private Sub CheckBox1_Click()

If CheckBox1.Value = True Then
    For i = 0 To ListBox1.ListCount - 1
        ListBox1.Selected(i) = True
    Next i
End If

If CheckBox1.Value = False Then
    For i = 0 To ListBox1.ListCount - 1
        ListBox1.Selected(i) = False
    Next i
End If

End Sub

Açıklama: ilk onay kutusunu işaretleyerek, ilk liste kutusunu tüm öğeleri seçili seçili /.

24. aynı kod satırı eklemek için ikinci onay kutusunu çift tıklatın.Sadece CheckBox1 CheckBox2 ve ListBox1 ListBox2 ile değiştirin.

Ayrıca oku: