Kombinirani okviri dopustiti korisnicima da odaberu opciju s padajućeg popisa. Kombinirani okviri mogu se stvoriti u VBA korisničkim obrascima ili s radnim listom programa Excel. U ovom ćete vodiču naučiti kako stvoriti i manipulirati ComboBoxima u VBA i u Excel radnim listovima.
Ako želite naučiti kako stvoriti okvir s popisom, kliknite ovdje: VBA popisni okvir
Ako želite naučiti kako stvoriti okvir za potvrdu, kliknite ovdje: VBA potvrdni okvir
Izradite ComboBox u radnom listu programa Excel
Da biste umetnuli ComboBox u radni list, morate otići na Kartica Developer, kliknite Umetnuti a pod ActiveX Controls odaberite Kombinirana kutija:
Slika 1. Umetnite ComboBox u radni list
Kad odaberete ComboBox koji ste umetnuli, možete kliknuti na Svojstva ispod Kartica Developer:
Slika 2. Promijenite ComboBox svojstva
Ovdje možete postaviti različita svojstva ComboBox -a. Za početak smo promijenili atribut Ime do cmbComboBox. Sada možemo koristiti ComboBox s ovim imenom u VBA kodu.
Popunite ComboBox u VBA kodu
Prvo, moramo popuniti ComboBox vrijednostima. U većini slučajeva, ComboBox se mora popuniti kada se radna knjiga otvori. Zbog toga moramo staviti kôd za popunjavanje ComboBox -a u objektu Radna bilježnica, postupak Otvorena. Ovaj se postupak izvodi svaki put kada korisnik otvori radnu knjigu. Evo koda:
123456789 | S Sheet1.cmbComboBox.Dodajte stavku "John".Dodajte stavku "Michael".Dodajte stavku "Jennifer".Dodajte stavku "Lilly".Dodatak "Robert"Završi s |
Kada kliknete na padajući izbornik, dobit ćete 5 imena za izbor (John, Michael, Jennifer, Lilly i Robert):
Slika 3. Napunite ComboBox u VBA
Popunite ComboBox iz raspona ćelija
Drugi mogući način popunjavanja ComboBox -a je dopustiti korisniku da to učini. ComboBox se može povezati s rasponom ćelija. U ovom pristupu, svaki put kada korisnik unese novu vrijednost u raspon ćelija, ComboBox će se ažurirati tom vrijednošću.
Ako to želite omogućiti, morate otići na Svojstva iz ComboBox -a i postavite atribut ListFillRange do raspona ćelija (u našem slučaju E2: E5):
Slika 4. Napunite ComboBox iz raspona ćelija
Povezali smo naš ComboBox s rasponom E2: E5, gdje stavljamo imena koja želimo (Nathan, Harry, George, Roberta). Kao rezultat toga, ComboBox je sada popunjen sljedećim imenima:
Slika 5. Napunjeni ComboBox iz raspona ćelija
Nabavite odabranu stavku ComboBox -a u VBA -i
Svrha ComboBox -a je omogućiti korisnicima izbor. Da biste dohvatili korisnički izbor, morate koristiti ovaj kôd:
123 | Zatamni strSelectedItem kao varijantustrSelectedItem = Sheet1.cmbComboBox.Vrijednost |
Odabir korisnika nalazi se u atributu Vrijednost od List1.cmbComboBox objekt. Ova vrijednost je dodijeljena varijabli strSelectedItem:
Slika 6. Dobijte odabranu vrijednost iz ComboBox -a u VBA -i
Odabrali smo Julija u ComboBoxu i izvršio postupak. Kao što možete vidjeti na slici 5, vrijednost strSelectedItem je Julija, što je vrijednost koju smo odabrali. Sada ovu varijablu možete dalje obraditi u kodu.
Očistite ComboBox
Ako želite obrisati ComboBox u VBA -i, morate upotrijebiti Čisto metoda List1.lstComboBox objekt. Izbrisat će sve stavke iz ComboBox -a. Evo koda:
1 | Sheet1.cmbComboBox.Clear |
Kad izvršimo kôd, dobivamo prazan ComboBox:
Slika 7. Očistite ComboBox
Koristite ComboBox u korisničkom obliku
Kao što smo spomenuli, Combobox se najčešće koristi u korisničkim oblicima. Da bismo objasnili kako to možete učiniti, prvo ćemo umetnuti Userform. U uređivaču VBA desnom tipkom miša kliknite naziv modula, a zatim kliknite Umetnuti i izabrati Korisnički obrazac:
Slika 8. Umetnite korisnički obrazac
Da biste prikazali kontrole za umetanje, morate omogućiti Kutija s alatima. Da biste to učinili, kliknite naKutija s alatima ikonu na alatnoj traci. Nakon toga dobit ćete prozore sa svim dostupnim kontrolama. Možete kliknuti na ComboBox kako biste ga stvorili u korisničkom obliku.
Slika 9. Umetnite ComboBox u Userform
Nazvat ćemo ComboBox cmbComboBox. Da bismo ga popunili vrijednostima, moramo unijeti sljedeći kod u metodu Inicijalizirati objekta Korisnički obrazac:
12345678910111213 | Privatni pomoćni korisnički obrazac_Initialize ()Pomoću UserForm1.cmbComboBox.Dodajte stavku "John".Dodajte stavku "Michael".Dodajte stavku "Jennifer".Dodajte stavku "Lilly".Dodatak "Robert"Završi sKraj podm |
Ovaj se kôd pokreće svaki put kada korisnik pokrene Userform i popuni Combobox s ovih 5 imena:
Slika 10. ComboBox sa vrijednostima u korisničkom obliku
Ako želite dobiti odabranu vrijednost iz ComboBox -a, morate koristiti istu logiku za Combobox na radnom listu, što je objašnjeno ranije u članku.