Excel VBA – usuwanie zaznaczonych pozycji ListBox’a
maj 11th, 2010. Brak komentarzy.
Kategorie: Excel, Software, Visual Basic, Zabawy z kodem.
Dzisiaj tylko szybki snippet. Mamy sobie listę typu ListBox oraz przycisk, który ma usuwać zaznaczone na liście pozycje. Z racji, że możemy mieć kilka takich zestawów, przyda się uniwersalna funkcja, niezależna od konkretnej listy.
Do przycisku przypisujemy wywołanie:
Private Sub removeOnTheList_Click() removeSelected theList 'wywolanie wlasciwe 'plus maly dodatek: If theList.ListCount = 0 Then removeOnTheList.Enabled = False End If End Sub
Sama funkcja zaś jest prosta jak świński ogon:
1 2 3 4 5 6 7 | Sub removeSelected(myList As MSForms.ListBox) For a = myList.ListCount - 1 To 0 Step -1 If myList.Selected(a) Then myList.RemoveItem (a) End If Next End Sub |
WAŻNE: należy pamiętać (zupełnie jak przy filtrowaniu, że elementy typy
ListBoxjako argumenty funkcji/procedury deklarujemy ze wskazaniem ich obiektu nadrzędnego – tuMSForms.