Kombinované boxy umožniť používateľom vybrať si možnosť z rozbaľovacieho zoznamu. ComboBoxy je možné vytvoriť vo VBA UserForms alebo pomocou pracovného hárka programu Excel. V tomto tutoriále sa naučíte vytvárať a manipulovať s ComboBoxmi vo VBA a v pracovných hárkoch Excelu.
Ak sa chcete dozvedieť, ako vytvoriť zoznam, kliknite sem: VBA zoznam
Ak sa chcete dozvedieť, ako vytvoriť začiarkavacie políčko, kliknite sem: Začiarkavacie políčko VBA
Vytvorte ComboBox v hárku programu Excel
Ak chcete vložiť ComboBox do pracovného hárka, musíte prejsť na Karta vývojára, klikni Vložiť a v časti Ovládacie prvky ActiveX vyberte Kombinovaný box:
Obrázok 1. Vložte ComboBox do pracovného hárka
Keď vyberiete vložený ComboBox, môžete naň kliknúť Vlastnosti pod Karta vývojára:
Obrázok 2. Zmeňte vlastnosti ComboBoxu
Tu môžete nastaviť rôzne vlastnosti ComboBoxu. Na začiatok sme zmenili atribút názov do cmbComboBox. Teraz môžeme ComboBox s týmto názvom použiť v kóde VBA.
Naplňte ComboBox v kóde VBA
Najprv musíme ComboBox naplniť hodnotami. Vo väčšine prípadov je potrebné ComboBox vyplniť pri otvorení zošita. Z tohto dôvodu musíme vložiť kód na osadenie objektu ComboBox do objektu Pracovný zošit, postup Otvorené. Tento postup sa vykoná vždy, keď používateľ otvorí zošit. Tu je kód:
123456789 | S listom1.cmbComboBox.Pridať položku "John".Pridať položku "Michael".AddItem "Jennifer".Pridať položku "Lilly".Pridať položku "Robert"Ukončiť s |
Po kliknutí na rozbaľovaciu ponuku dostanete na výber 5 mien (John, Michael, Jennifer, Lilly a Robert):
Obrázok 3. Naplňte ComboBox vo VBA
Naplňte ComboBox z radu buniek
Ďalším možným spôsobom, ako naplniť ComboBox, je nechať to urobiť používateľa. ComboBox môže byť prepojený s rozsahom buniek. Pri tomto prístupe sa zakaždým, keď používateľ zadá novú hodnotu v oblasti buniek, ComboBox aktualizuje s touto hodnotou.
Ak to chcete povoliť, musíte prejsť na Vlastnosti ComboBoxu a nastavte atribút ListFillRange do rozsahu buniek (v našom prípade E2: E5):
Obrázok 4. Naplňte ComboBox z radu buniek
Náš ComboBox sme prepojili s radom E2: E5, kde sme vložili požadované mená (Nathan, Harry, George, Roberta). Výsledkom je, že ComboBox je teraz osadený týmito názvami:
Obrázok 5. Populárny ComboBox z radu buniek
Získajte vybranú položku ComboBoxu vo VBA
Účelom ComboBoxu je nechať si vybrať používateľov. Ak chcete získať výber používateľov, musíte použiť tento kód:
123 | Dim strSelectedItem As VariantstrSelectedItem = Sheet1.cmbComboBox.Value |
V atribúte je výber používateľov Hodnota z List1.cmbComboBox predmet. Táto hodnota je priradená k premennej strSelectedItem:
Obrázok 6. Získajte vybranú hodnotu z ComboBoxu vo VBA
Vybrali sme Julia v ComboBoxe a vykonal postup. Ako vidíte na obrázku 5, hodnota strSelectedItem je Julia, čo je hodnota, ktorú sme vybrali. Teraz môžete túto premennú ďalej spracovávať v kóde.
Vymažte pole ComboBox
Ak chcete vymazať ComboBox vo VBA, musíte použiť jasný metóda Sheet1.lstComboBox predmet. Odstráni všetky položky z ComboBoxu. Tu je kód:
1 | List1.cmbComboBox.Clear |
Keď spustíme kód, dostaneme prázdny ComboBox:
Obrázok 7. Vymažte pole ComboBox
Použite ComboBox v užívateľskej forme
Ako sme už spomenuli, Combobox sa najčastejšie používa v Userforms. Aby sme vám vysvetlili, ako to môžete urobiť, najskôr vložíme užívateľský formulár. V editore VBA kliknite pravým tlačidlom myši na Názov modulu, kliknite na Vložiť a vyber si UserForm:
Obrázok 8. Vložte užívateľský formulár
Ak chcete zobraziť ovládacie prvky na vkladanie, musíte povoliť Sada nástrojov. Ak to chcete urobiť, kliknite naSada nástrojov ikonu na paneli s nástrojmi. Potom získate okná so všetkými dostupnými ovládacími prvkami. Môžete kliknúť na ComboBox vytvoriť ho vo forme používateľa.
Obrázok 9. Vložte ComboBox do užívateľského formulára
Pomenujeme ComboBox cmbComboBox. Aby sme ho naplnili hodnotami, musíme do metódy vložiť nasledujúci kód Inicializovať predmetu UserForm:
12345678910111213 | Private Sub UserForm_Initialize ()S UserForm1.cmbComboBox.Pridať položku "John".Pridať položku "Michael".AddItem "Jennifer".Pridať položku "Lilly".Pridať položku "Robert"Ukončiť sKoniec pod |
Tento kód sa spustí zakaždým, keď používateľ spustí Userform a naplní Combobox týmito 5 názvami:
Obrázok 10. ComboBox s hodnotami vo forme užívateľa
Ak chcete získať vybranú hodnotu z ComboBoxu, musíte použiť rovnakú logiku pre Combobox v pracovnom hárku, ktorá je vysvetlená vyššie v článku.