Yhdistelmälaatikot anna käyttäjien valita vaihtoehto avattavasta valikosta. Yhdistelmälaatikot voidaan luoda VBA UserForms -ohjelmassa tai Excel -laskentataulukolla. Tässä opetusohjelmassa opit luomaan ja käsittelemään yhdistelmälaatikoita VBA: ssa ja Excel -laskentataulukoissa.
Jos haluat oppia luomaan luetteloruudun, napsauta tätä: VBA Listbox
Jos haluat oppia luomaan valintaruudun, napsauta tätä: VBA -valintaruutu
Luo yhdistelmälaatikko Excel -laskentataulukkoon
Voit lisätä yhdistelmäruudun laskentataulukkoon siirtymällä kohtaan Kehittäjä -välilehti, klikkaus Lisää ja valitse ActiveX -komponentit -kohdasta Yhdistelmälaatikko:
Kuva 1. Lisää yhdistelmäruutu laskentataulukkoon
Kun valitset lisäämäsi yhdistelmälaatikon, voit napsauttaa Ominaisuudet alla Kehittäjä -välilehti:
Kuva 2. Muuta ComboBox -ominaisuuksia
Tässä voit asettaa ComboBoxin eri ominaisuuksia. Aloitimme muuttamalla määritettä Nimi kohteeseen cmbComboBox. Nyt voimme käyttää tämän nimen yhdistelmälaatikkoa VBA -koodissa.
Täytä yhdistelmälaatikko VBA -koodissa
Ensinnäkin meidän on täytettävä yhdistelmälaatikko arvoilla. Useimmissa tapauksissa yhdistelmälaatikko on täytettävä työkirjan avaamisen yhteydessä. Tämän vuoksi meidän on lisättävä koodi ComboBoxin täyttämiseen objektissa Työkirja, menettely Avata. Tämä toimenpide suoritetaan aina, kun käyttäjä avaa työkirjan. Tässä on koodi:
123456789 | Sheet1.cmbComboBoxin kanssa.Lisää "John".Lisää "Michael".Lisää "Jennifer".Lisää "Lilly".Lisää "Robert"Lopeta |
Kun napsautat avattavaa valikkoa, saat 5 nimeä (John, Michael, Jennifer, Lilly ja Robert):
Kuva 3. Täytä ComboBox VBA: ssa
Täytä yhdistelmälaatikko solualueelta
Toinen mahdollinen tapa täyttää ComboBox on antaa käyttäjän tehdä se. ComboBox voidaan linkittää solualueeseen. Tässä lähestymistavassa yhdistelmäruutu päivittyy aina, kun käyttäjä syöttää uuden arvon solualueelle.
Jos haluat ottaa tämän käyttöön, sinun on siirryttävä kohtaan Ominaisuudet ComboBoxista ja aseta määritteeksi ListFillRange solualueelle (tässä tapauksessa E2: E5):
Kuva 4. Täytä ComboBox solualueelta
Yhdistimme ComboBoxin valikoimaan E2: E5, johon laitoimme haluamamme nimet (Nathan, Harry, George, Roberta). Tämän seurauksena yhdistelmälaatikko on nyt varustettu seuraavilla nimillä:
Kuva 5. Yhdistelmälaatikko solualueelta
Hanki valittu kohde yhdistelmälaatikosta VBA: ssa
ComboBoxin tarkoitus on saada käyttäjät valitsemaan. Käyttäjien valinnan saamiseksi sinun on käytettävä tätä koodia:
123 | Dim strSelectedItem VaihtoehtonastrSelectedItem = Sheet1.cmbComboBox.Value |
Käyttäjien valinta on määritteessä Arvo / Sheet1.cmbComboBox esine. Tämä arvo on määritetty muuttujalle strSelectedItem:
Kuva 6. Hanki valittu arvo VBA: n yhdistelmälaatikosta
Valitsimme Julia ComboBoxissa ja suoritti toimenpiteen. Kuten näet kuvassa 5, strSelectedItem On Julia, joka on valitsemamme arvo. Nyt voit käsitellä tätä muuttujaa edelleen koodissa.
Tyhjennä ComboBox
Jos haluat tyhjentää ComboBoxin VBA: ssa, sinun on käytettävä Asia selvä menetelmä Sheet1.lstComboBox esine. Se poistaa kaikki kohteet yhdistelmäruudusta. Tässä on koodi:
1 | Sheet1.cmbComboBox.Clear |
Kun suoritamme koodin, saamme tyhjän ComboBoxin:
Kuva 7. Tyhjennä ComboBox
Käytä ComboBoxia Userformissa
Kuten mainitsimme, Comboboxia 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 8. 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 Yhdistelmälaatikko luoda se Userformissa.
Kuva 9. Aseta yhdistelmälaatikko 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.cmbComboBoxin 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ää Comboboxin seuraavilla viidellä nimellä:
Kuva 10. Yhdistelmäruutu, jossa on arvot Userformissa
Jos haluat saada valitun arvon yhdistelmälaatikosta, sinun on käytettävä samaa logiikkaa laskentataulukon yhdistelmälaatikossa, joka selitetään aiemmin artikkelissa.