Každé dialógové okno programu Excel, ktoré vytvoríte vo VBA, je uložené vo vlastnom objekte UserForm – jedno dialógové okno na každý UserForm. Tieto UserForms vytvárate a pristupujete k nim v editore jazyka Visual Basic.
Vloženie nového používateľského formulára
Vložte objekt UserForm podľa týchto krokov:
Aktivujte VBE stlačením Alt+F11.
Vyberte zošit, ktorý bude obsahovať UserForm v okne projektu.
Vyberte Vložiť → Používateľský formulár.
VBE vloží nový objekt UserForm, ktorý obsahuje prázdne dialógové okno.
Tu je UserForm – prázdne dialógové okno. Vašou úlohou, ak sa to rozhodnete prijať, je pridať do tohto UserFormu nejaké ovládacie prvky.
Nový objekt UserForm.
Pridanie ovládacích prvkov do UserForm
Keď aktivujete UserForm, VBE zobrazí Toolbox v plávajúcom okne. Na pridanie ovládacích prvkov do vášho UserForm používate nástroje v Paneli s nástrojmi. Ak sa z nejakého dôvodu Toolbox nezobrazí, keď aktivujete váš UserForm, vyberte Zobraziť → Toolbox.
Ak chcete pridať ovládací prvok, stačí kliknúť na požadovaný ovládací prvok v paneli s nástrojmi a pretiahnuť ho do dialógového okna, čím vytvoríte ovládací prvok. Po pridaní ovládacieho prvku ho môžete presúvať a meniť jeho veľkosť pomocou štandardných techník.
Tu je zoznam rôznych nástrojov, ako aj ich možnosti.
Kontrola |
Čo to robí |
Označenie |
Zobrazuje text |
Textové pole |
Umožňuje používateľovi zadávať text |
ComboBox |
Zobrazí rozbaľovací zoznam |
ListBox |
Zobrazí zoznam položiek |
CheckBox |
Poskytuje možnosti ako zapnúť/vypnúť alebo áno/nie |
OptionButton |
Umožňuje používateľovi vybrať jednu z niekoľkých možností; používané v
skupinách po dvoch alebo viacerých |
Prepínač |
Umožňuje používateľovi zapnúť alebo vypnúť tlačidlo |
Rám |
Obsahuje ďalšie ovládacie prvky |
CommandButton |
Klikacie tlačidlo |
TabStrip |
Zobrazuje karty |
Viacstránkové |
Záložkový kontajner na iné predmety |
Posuvník |
Umožňuje používateľovi potiahnutím pruhu vytvoriť nastavenie |
SpinButton |
Umožňuje používateľovi kliknúť na tlačidlo a zmeniť hodnotu |
Obrázok |
Drží obrázok |
RefEdit |
Umožňuje používateľovi vybrať rozsah |
Zmena vlastností ovládacieho prvku UserForm
Každý ovládací prvok, ktorý pridáte do UserForm, má vlastnosti, ktoré určujú, ako ovládací prvok vyzerá alebo sa správa. Okrem toho má samotný UserForm svoju vlastnú sadu vlastností. Tieto vlastnosti môžete zmeniť pomocou okna s príhodným názvom Vlastnosti. Keď je vybratý ovládací prvok CommandButton, zobrazí sa okno Vlastnosti.
Na zmenu vlastností ovládacích prvkov UserForm použite okná Vlastnosti.
Po stlačení F4 sa zobrazí okno Vlastnosti a vlastnosti zobrazené v tomto okne závisia od toho, čo je vybraté. Ak vyberiete iný ovládací prvok, vlastnosti sa zmenia na vlastnosti vhodné pre daný ovládací prvok. Ak chcete skryť okno Vlastnosti a odstrániť ho z cesty, kliknite na tlačidlo Zavrieť v jeho záhlaví. Stlačením F4 sa vždy vráti, keď to potrebujete.
Vlastnosti ovládacích prvkov zahŕňajú nasledujúce:
-
názov
-
šírka
-
Výška
-
Hodnota
-
Popis
Každý ovládací prvok má svoju vlastnú množinu vlastností (hoci mnohé ovládacie prvky majú niektoré spoločné vlastnosti). Ak chcete zmeniť vlastnosť pomocou okna Vlastnosti, postupujte takto:
Uistite sa, že v UserForm je vybratý správny ovládací prvok.
Uistite sa, že je viditeľné okno Vlastnosti.
V okne Vlastnosti kliknite na vlastnosť, ktorú chcete zmeniť.
Zmenu vykonajte v pravej časti okna Vlastnosti.
Ak vyberiete samotný UserForm (nie ovládací prvok na UserForm), môžete použiť okno Vlastnosti na úpravu vlastností UserForm.
Zobrazenie okna UserForm Code
Každý objekt UserForm má modul Kód, ktorý obsahuje kód VBA (procedúry obsluhy udalostí), ktorý sa spustí, keď používateľ pracuje s dialógovým oknom. Ak chcete zobraziť modul Kód, stlačte F7. Okno Kód je prázdne, kým nepridáte nejaké procedúry. Stlačením Shift+F7 sa vrátite do dialógového okna.
Tu je ďalší spôsob, ako prepínať medzi oknom Kód a zobrazením UserForm: Použite tlačidlá Zobraziť kód a Zobraziť objekt v záhlaví okna Projekt. Alebo kliknite pravým tlačidlom myši na UserForm a vyberte Zobraziť kód. Ak si prezeráte kód, dvakrát kliknite na názov UserForm v okne projektu, aby ste sa vrátili do UserForm.
Zobrazenie UserFormu
UserForm zobrazíte pomocou metódy Show UserForm v procedúre VBA.
Makro, ktoré zobrazuje dialógové okno, musí byť v module VBA – nie v okne Kód pre UserForm.
Nasledujúci postup zobrazí dialógové okno s názvom UserForm1:
Sub ShowDialogBox()
UserForm1.Show
Ďalšie vyhlásenia môžu byť uvedené tu
End Sub
Keď Excel zobrazí dialógové okno, makro ShowDialogBox sa zastaví, kým používateľ dialógové okno nezavrie. Potom VBA vykoná všetky zostávajúce príkazy v procedúre. Väčšinu času nebudete mať v postupe žiadny ďalší kód. Ako neskôr uvidíte, svoje procedúry obsluhy udalostí ste umiestnili do okna Kód pre UserForm. Tieto postupy sa spúšťajú, keď používateľ pracuje s ovládacími prvkami na UserForm.
Použitie informácií z UserFormu
VBE poskytuje názov pre každý ovládací prvok, ktorý pridáte do UserForm. Názov ovládacieho prvku zodpovedá jeho vlastnosti Name. Tento názov použite na odkazovanie na konkrétny ovládací prvok vo vašom kóde. Napríklad, ak pridáte ovládací prvok CheckBox do UserForm s názvom UserForm1, ovládací prvok CheckBox bude mať štandardne názov CheckBox1. Pomocou poľa Vlastnosti môžete tento ovládací prvok zobraziť so značkou začiarknutia. Alebo môžete napísať kód, aby ste to urobili:
UserForm1.CheckBox1.Value = Pravda
Väčšinu času napíšete kód pre UserForm do modulu kódu UserForm. Ak je to tak, môžete vynechať kvalifikátor objektu UserForm a napísať príkaz takto:
CheckBox1.Value = Pravda
Váš kód VBA môže tiež skontrolovať rôzne vlastnosti ovládacích prvkov a vykonať príslušné akcie. Nasledujúci príkaz spustí makro s názvom PrintReport, ak je začiarknuté políčko (s názvom CheckBox1):
Ak CheckBox1.Value = True, potom zavolajte PrintReport
Zvyčajne je dobré zmeniť predvolený názov, ktorý VBE pridelil vašim ovládacím prvkom, na niečo zmysluplnejšie.