Každé dialogové okno Excel, které vytvoříte ve VBA, je uloženo ve vlastním objektu UserForm – jedno dialogové okno na UserForm. Tyto UserForms vytvoříte a získáte k nim přístup v editoru jazyka Visual Basic.
Vložení nového UserForm
Vložte objekt UserForm podle následujících kroků:
Aktivujte VBE stisknutím Alt+F11.
Vyberte sešit, který bude obsahovat UserForm v okně projektu.
Zvolte Vložit → Uživatelský formulář.
VBE vloží nový objekt UserForm, který obsahuje prázdné dialogové okno.
Zde je UserForm – prázdné dialogové okno. Vaším úkolem, pokud se rozhodnete to přijmout, je přidat do tohoto UserFormu nějaké ovládací prvky.
Nový objekt UserForm.
Přidání ovládacích prvků do UserForm
Když aktivujete UserForm, VBE zobrazí Toolbox v plovoucím okně. Pomocí nástrojů v panelu nástrojů přidáte ovládací prvky do svého UserForm. Pokud se z nějakého důvodu Toolbox nezobrazí, když aktivujete svůj UserForm, zvolte Zobrazit → Toolbox.
Chcete-li přidat ovládací prvek, stačí kliknout na požadovaný ovládací prvek v panelu nástrojů a přetáhnout jej do dialogového okna, čímž ovládací prvek vytvoříte. Po přidání ovládacího prvku jej můžete přesouvat a měnit jeho velikost pomocí standardních technik.
Zde je seznam různých nástrojů a také jejich možnosti.
Řízení |
Co to dělá |
Označení |
Zobrazuje text |
Textové pole |
Umožňuje uživateli zadat text |
ComboBox |
Zobrazí rozevírací seznam |
Seznam |
Zobrazí seznam položek |
CheckBox |
Poskytuje možnosti, jako je zapnuto/vypnuto nebo ano/ne |
OptionButton |
Umožňuje uživateli vybrat jednu z několika možností; používá se ve
skupinách po dvou nebo více |
Přepínací tlačítko |
Umožňuje uživateli zapnout nebo vypnout tlačítko |
Rám |
Obsahuje další ovládací prvky |
CommandButton |
Klikací tlačítko |
TabStrip |
Zobrazí karty |
Vícestránkové |
Záložní kontejner pro jiné objekty |
Posuvník |
Umožňuje uživateli přetažením pruhu vytvořit nastavení |
SpinButton |
Umožňuje uživateli kliknout na tlačítko a změnit hodnotu |
obraz |
Drží obrázek |
RefEdit |
Umožňuje uživateli vybrat rozsah |
Změna vlastností pro ovládací prvek UserForm
Každý ovládací prvek, který přidáte do UserForm, má vlastnosti, které určují, jak ovládací prvek vypadá nebo se chová. Kromě toho má samotný UserForm svou vlastní sadu vlastností. Tyto vlastnosti můžete změnit pomocí příhodně pojmenovaného okna Vlastnosti. Když je vybrán ovládací prvek CommandButton, zobrazí se okno Vlastnosti.
Ke změně vlastností ovládacích prvků UserForm použijte okna Vlastnosti.
Po stisknutí F4 se zobrazí okno Vlastnosti a vlastnosti zobrazené v tomto okně závisí na tom, co je vybráno. Pokud vyberete jiný ovládací prvek, vlastnosti se změní na vlastnosti vhodné pro tento ovládací prvek. Chcete-li skrýt okno Vlastnosti a odstranit jej z cesty, klepněte na tlačítko Zavřít v jeho záhlaví. Stisknutím F4 se vždy vrátí, když to potřebujete.
Vlastnosti ovládacích prvků zahrnují následující:
-
název
-
Šířka
-
Výška
-
Hodnota
-
Titulek
Každý ovládací prvek má svou vlastní sadu vlastností (ačkoli mnoho ovládacích prvků má některé společné vlastnosti). Chcete-li změnit vlastnost pomocí okna Vlastnosti, postupujte takto:
Ujistěte se, že je v UserForm vybrán správný ovládací prvek.
Ujistěte se, že je viditelné okno Vlastnosti.
V okně Vlastnosti klikněte na vlastnost, kterou chcete změnit.
Změnu proveďte v pravé části okna Vlastnosti.
Pokud vyberete samotný UserForm (nikoli ovládací prvek na UserForm), můžete použít okno Vlastnosti k úpravě vlastností UserForm.
Zobrazení okna UserForm Code
Každý objekt UserForm má modul Code, který obsahuje kód VBA (procedury obslužné rutiny události), který se spustí, když uživatel pracuje s dialogovým oknem. Chcete-li zobrazit modul Kód, stiskněte klávesu F7. Okno Kód je prázdné, dokud nepřidáte nějaké procedury. Stisknutím Shift+F7 se vrátíte do dialogového okna.
Zde je další způsob, jak přepínat mezi oknem Kód a zobrazením UserForm: Použijte tlačítka Zobrazit kód a Zobrazit objekt v záhlaví okna Projekt. Nebo klepněte pravým tlačítkem myši na UserForm a zvolte Zobrazit kód. Pokud si prohlížíte kód, poklepejte na název UserForm v okně projektu a vraťte se do UserForm.
Zobrazení UserForm
UserForm zobrazíte pomocí metody Zobrazit UserForm v proceduře VBA.
Makro, které zobrazuje dialogové okno, musí být v modulu VBA – nikoli v okně Kód pro UserForm.
Následující postup zobrazí dialogové okno s názvem UserForm1:
Sub ShowDialogBox()
UserForm1.Show
Další prohlášení mohou být zde
End Sub
Když Excel zobrazí dialogové okno, makro ShowDialogBox se zastaví, dokud uživatel dialogové okno nezavře. Potom VBA provede všechny zbývající příkazy v proceduře. Většinu času nebudete mít v postupu žádný další kód. Jak později uvidíte, umístíte své procedury obsluhy události do okna Kód pro UserForm. Tyto postupy se spustí, když uživatel pracuje s ovládacími prvky na UserForm.
Použití informací z UserForm
VBE poskytuje název pro každý ovládací prvek, který přidáte do UserForm. Název ovládacího prvku odpovídá jeho vlastnosti Name. Tento název použijte k odkazování na konkrétní ovládací prvek ve vašem kódu. Pokud například přidáte ovládací prvek CheckBox do UserForm s názvem UserForm1, bude ovládací prvek CheckBox ve výchozím nastavení pojmenován CheckBox1. Pomocí pole Vlastnosti můžete tento ovládací prvek zobrazit se zaškrtnutím. Nebo můžete napsat kód, jak to udělat:
UserForm1.CheckBox1.Value = Pravda
Většinu času píšete kód pro UserForm v modulu kódu UserForm. Pokud je tomu tak, můžete vynechat kvalifikátor objektu UserForm a napsat příkaz takto:
CheckBox1.Value = Pravda
Váš kód VBA může také kontrolovat různé vlastnosti ovládacích prvků a provádět příslušné akce. Následující příkaz spustí makro s názvem PrintReport, pokud je zaškrtnuto políčko (s názvem CheckBox1):
Pokud CheckBox1.Value = True, zavolejte PrintReport
Obvykle je dobré změnit výchozí název, který VBE přidělilo vašim ovládacím prvkům, na něco smysluplnějšího.