V VBA lahko ustvarite datoteko Seznam kjer lahko uporabnik izbere eno od navedenih možnosti. Listbox se pogosto uporablja v uporabniških oblikah, lahko pa tudi na delovnem listu. V tej vadnici se boste naučili ustvariti, zapolniti in izbrisati Listbox. Videli boste tudi, kako do uporabniške izbire v VBA in jo uporabiti v kodi.
Če želite izvedeti, kako ustvariti ComboBox, kliknite tukaj: VBA ComboBox
Če se želite naučiti ustvariti potrditveno polje, kliknite tukaj: potrditveno polje VBA
Ustvarite Listbox
Če želite v delovni list vstaviti polje s seznamom, pojdite na Zavihek za razvijalce, kliknite Vstavi in pod možnostjo Kontrolniki ActiveX izberite Seznam:
Slika 1. V delovni list vstavite polje s seznamom
Ko izberete Listbox, ki ste ga vstavili, lahko kliknete na Lastnosti pod Zavihek za razvijalce:
Slika 2. Spremenite lastnosti seznama
Tu lahko nastavite različne lastnosti seznama. Za začetek smo spremenili atribut Ime do lstListBox. Zdaj lahko v kodi VBA uporabimo Listbox s tem imenom.
V kodo VBA napolnite polje s seznamom
Najprej moramo Listbox napolniti z vrednostmi. V večini primerov je treba pri odpiranju delovnega zvezka vnesti polje s seznamom. Zaradi tega moramo v objekt vnesti kodo za izpolnjevanje Listbox Delovni zvezek, postopek Odprto. Ta postopek se izvede vsakič, ko uporabnik odpre delovni zvezek. Tukaj je koda:
123456789 | S Sheet1.lstListBox.Dodaj "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".Dodatek "Robert"Končaj s |
Kot lahko vidite na sliki 3, smo naš Listbox napolnili s 5 imeni (John, Michael, Jennifer, Lilly in Robert):
Slika 3. V VBA vnesite Listbox
Napolnite polje s seznamom iz obsega celic
Drug možen način zapolnitve seznama je, da to dovolite uporabniku. Listbox je mogoče povezati z obsegom celic. Zato se bo vsakič, ko uporabnik vnese novo vrednost v obseg celic, Listbox posodobil s to vrednostjo.
Če želite to omogočiti, pojdite na Lastnosti polja ListBox in nastavite atribut ListFillRange:
Slika 4. Napolnite polje List iz obsega celic
Listbox smo povezali z obsegom E2: E5, kamor vnesemo imena, ki jih želimo (Nathan, Harry, George, Roberta). Posledično je Listbox zdaj poseljen s temi imeni.
Pridobite izbrani element seznama v VBA
Namen seznama je, da uporabniki izbirajo. Če želite pridobiti vrednost, ki jo izbere uporabnik, morate uporabiti to kodo:
123 | Zatemni strSelectedItem kot variantostrSelectedItem = Sheet1.lstListBox.Value |
Izbira uporabnikov je v atributu Vrednost od Sheet1.lstListbox predmet. Ta vrednost je dodeljena spremenljivki strSelectedItem:
Slika 5. Pridobite izbrano vrednost iz seznama v VBA
Izbrali smo Harry v seznamu in izvedli postopek. Kot lahko vidite na sliki 5, je vrednost strSelectedItem je Harry, kar je vrednost, ki smo jo izbrali. Poleg tega lahko to spremenljivko obdelate v kodi.
Počistite polje s seznamom
Če želite počistiti Listbox v VBA, morate uporabiti Jasno metoda Sheet1.lstListBox predmet. Izbrisal bo vse elemente iz seznama. Tukaj je koda:
1 | Sheet1.lstListBox.Clear |
Ko izvedemo kodo, dobimo prazno Listbox:
Slika 6. Počistite polje s seznamom
Uporabite Listbox v uporabniškem obrazcu
Kot smo omenili, se Listbox najpogosteje uporablja v uporabniških oblikah. Če želite razložiti, kako lahko to storite, najprej vstavimo uporabniški obrazec. V urejevalniku VBA z desno tipko miške kliknite Ime modula, kliknite na Vstavi in izberite Uporabniški obrazec:
Slika 7. Vstavite uporabniški obrazec
Če želite prikazati kontrolnike za vstavljanje, morate omogočiti Orodjarna. Če želite to narediti, kliknite naOrodjarna ikono v orodni vrstici. Po tem boste dobili okna z vsemi razpoložljivimi kontrolami. Lahko kliknete na ListBox da ga ustvarite v uporabniškem obrazcu.
Slika 8. V polje Userform vstavite Listbox
Imenovali bomo ComboBox cmbComboBox. Če ga želimo zapolniti z vrednostmi, moramo v metodo vnesti naslednjo kodo Inicializirajte predmeta Uporabniški obrazec:
12345678910111213 | Zasebni podporabnikForm_Initialize ()Z UserForm1.lstListBox.Dodaj "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".Dodatek "Robert"Končaj sEnd Sub |
Ta koda se sproži vsakič, ko uporabnik zažene uporabniški obrazec in napolni polje s temi petimi imeni:
Slika 9. Listbox z vrednostmi v uporabniškem obrazcu
Če želite iz ComboBox -a dobiti izbrano vrednost, morate uporabiti isto logiko za Combobox na delovnem listu, kar je razloženo prej v članku.