VBA: ssa voit luoda Luettelo jossa käyttäjä voi valita jonkin luettelossa olevista vaihtoehdoista. Listboxia käytetään usein Userformsissa, mutta sitä voidaan käyttää myös laskentataulukossa. Tässä opetusohjelmassa opit luomaan, täyttämään ja poistamaan luetteloruudun. Näet myös, miten saat käyttäjän valinnan VBA: ssa ja käytät sitä koodissa.
Jos haluat oppia luomaan yhdistelmälaatikon, napsauta tätä: VBA ComboBox
Jos haluat oppia luomaan valintaruudun, napsauta tätä: VBA -valintaruutu
Luo luetteloruutu
Jos haluat lisätä luetteloruudun laskentataulukkoon, sinun on siirryttävä kohtaan Kehittäjä -välilehti, klikkaus Lisää ja valitse ActiveX -komponentit -kohdasta Luetteloruutu:
Kuva 1. Lisää luetteloruutu laskentataulukkoon
Kun valitset lisäämäsi luetteloruudun, voit napsauttaa Ominaisuudet alla Kehittäjä -välilehti:
Kuva 2. Muuta luetteloruudun ominaisuuksia
Täällä voit asettaa Listalaatikon eri ominaisuuksia. Aluksi muutimme määritettä Nimi kohteeseen lstListBox. Nyt voimme käyttää tämän nimen luetteloluetteloa VBA -koodissa.
Täytä luetteloruutu VBA -koodissa
Ensinnäkin meidän on täytettävä luetteloruutu arvoilla. Useimmissa tapauksissa luetteloruutu on täytettävä työkirjan avaamisen yhteydessä. Tämän vuoksi meidän on lisättävä koodi luetteloruudun täyttämiseksi objektissa Työkirja, menettely Avata. Tämä toimenpide suoritetaan aina, kun käyttäjä avaa työkirjan. Tässä on koodi:
123456789 | Sheet1.lstListBoxin kanssa.Lisää "John".Lisää "Michael".Lisää "Jennifer".Lisää "Lilly".Lisää "Robert"Lopeta |
Kuten kuvassa 3 näet, täytimme luetteloruudumme viidellä nimellä (John, Michael, Jennifer, Lilly ja Robert):
Kuva 3. Täytä luetteloruutu VBA: ssa
Täytä luetteloruutu solualueelta
Toinen mahdollinen tapa täyttää luetteloruutu on antaa käyttäjän tehdä se. Luetteloruutu voidaan linkittää solualueeseen. Siksi aina, kun käyttäjä syöttää uuden arvon solualueelle, Listbox päivittyy kyseisellä arvolla.
Jos haluat ottaa tämän käyttöön, sinun on siirryttävä kohtaan Ominaisuudet ListBoxista ja aseta määritteeksi ListFillRange:
Kuva 4. Täytä luetteloruutu solualueelta
Linkitimme Listboximme alueeseen E2: E5, johon laitoimme haluamamme nimet (Nathan, Harry, George, Roberta). Tämän seurauksena Listbox on nyt täytetty näillä nimillä.
Hanki valittu kohde luetteloluettelosta VBA: ssa
Listboxin tarkoitus on saada käyttäjät valitsemaan. Jotta voit hakea käyttäjän valitseman arvon, sinun on käytettävä tätä koodia:
123 | Dim strSelectedItem VaihtoehtonastrSelectedItem = Sheet1.lstListBox.Value |
Käyttäjien valinta on määritteessä Arvo / Sheet1.lstListbox esine. Tämä arvo on määritetty muuttujalle strSelectedItem:
Kuva 5. Hae valittu arvo VBA: n luetteloruudusta
Valitsimme Harry luetteloruutuun ja suoritti toimenpiteen. Kuten näet kuvassa 5, strSelectedItem On Harry, joka on valitsemamme arvo. Lisäksi voit käsitellä tämän muuttujan koodissa.
Tyhjennä luetteloruutu
Jos haluat tyhjentää luetteloruudun VBA: ssa, sinun on käytettävä Asia selvä menetelmä Sheet1.lstListBox esine. Se poistaa kaikki kohteet luetteloruudusta. Tässä on koodi:
1 | Sheet1.lstListBox.Clear |
Kun suoritamme koodin, saamme tyhjän luetteloruudun:
Kuva 6. Tyhjennä luetteloruutu
Käytä Listformboxia Userformissa
Kuten mainitsimme, Listboxia käytetään useimmiten Userformsissa. Selitämme, miten voit tehdä sen, lisäämme ensin Userformin. Napsauta VBA-editorissa Moduulin nimeä hiiren kakkospainikkeella ja napsauta Lisää ja valitse UserForm:
Kuva 7. Lisää käyttäjälomake
Jos haluat näyttää lisäämisen ohjaimet, sinun on otettava käyttöön Työkalupakki. Voit tehdä tämän napsauttamallaTyökalupakki -kuvaketta työkalurivillä. Tämän jälkeen saat ikkunat, joissa on kaikki käytettävissä olevat säätimet. Voit napsauttaa ListBox luoda se Userformissa.
Kuva 8. Lisää luetteloruutu Userformiin
Nimeämme ComboBoxin cmbComboBox. Jotta voimme täyttää sen arvoilla, meidän on lisättävä seuraava koodi menetelmään Alustaa esineestä UserForm:
12345678910111213 | Yksityinen alikäyttäjäForm_Initialize ()UserForm1.lstListBoxin kanssa.Lisää "John".Lisää "Michael".Lisää "Jennifer".Lisää "Lilly".Lisää "Robert"LopetaEnd Sub |
Tämä koodi käynnistyy aina, kun käyttäjä suorittaa Userformin ja täyttää luetteloruudun seuraavilla viidellä nimellä:
Kuva 9. Listalaatikko, jossa on arvoja Userformissa
Jos haluat saada valitun arvon yhdistelmälaatikosta, sinun on käytettävä samaa logiikkaa laskentataulukon yhdistelmälaatikossa, joka selitetään aiemmin artikkelissa.