Makra - formuláře

První díl - účel a nahrání makra Druhý díl - vlastní panel nástrojů Třetí díl - vytváření funkcí a podmínka Čtvrtý a pátý díl - podmínky, cykly, vkládání dat a výstupy Šestý díl - několik algoritmů a jejich řešení

Pracovní soubor s jednoduchým formulářem, včetně výpočtů

Poslední vysvětlovací kapitola se bude zabývat formuláři. Ty představují přechod od záznamu maker a vytváření vlastních funkcí přes makra využívající dialogová okna MsgBox a Input Box k takřka plnohodnotnému objektově orientovanému programování. O tom za chvíli.

Nejdříve, jak se k vytváření formulářů dostaneme: musíme přejít do editoru jazyka Visual Basic (Nástroje - Makro - Editor jazyka Visual Basic), který, začínáme-li s vytvářením, bude prázdný. Nový formulář se vloží přes Insert - UserForm. Měli bychom zároveň vidět okna, jako je Project (View - Project Explorer nebo CTRL+R), Properties (View - Properties Window nebo CTRL+O) a Toolbox (View - ToolBox), nebo-li Průzkumník, Vlastnosti a Panel nástrojů. Umístění těchto objektů na "jejich místa" se dá provést poklepáním na modrý horní pruh.

Project Explorer - zobrazuje stromovou strukturu otevřených souborů a ukazuje nám, ve kterém souboru a ve kterém jeho objektu se nacházíme,
Properties Window - ukazuje vlastnosti objektů ve formuláři, ještě se k němu vrátíme,
ToolBox - umožňuje vkládat objekty do formuláře, nejprve klikneme na objekt v panelu a tažením levého tlačítka ve formuláři se objekt objeví.

Zde měl být obrázek

Pro nás nejdůležitější objekty jsou Label (Popiska), TextBox (Textové pole) a Command Button (Příkazové tlačítko). Label slouží k zobrazování textu, popisky nebo výsledku, TextBox k zadávání dat a CommandButton, spíše ze zvyklosti, ke spuštění vykonání nějaké činnosti vedoucí k výsledku.

Zde měl být obrázek

Vlastnosti objektů

Každý z objektů má celou řadu vlastností, které se dají nastavit v okně Properties, ale dají se měnit i jinak. Ukážeme si je na objektu Label a TextBox.

Zde měl být obrázek k Label

Label

Přestože vlastností je hodně, vystačíme si nejčastěji s několika málo, proto jimi začnu:
(Name) - definuje název objektu, zde Label1. Dá se změnit, ale opatrně! Nedoporučuji čárky, hačky, mezery, hvězdičky, otazníky. Název je důležitý, až budeme definovat akce s objekty.
Caption - text v objektu, výchozí bývá název objektu, zde možno psát i s diakritikou
Z dalších vlastností namátkou
BackColor - barva pozadí objektu,
Enabled - zda je objekt po spuštění formuláře dostupný (výchozí hodnota True) nebo ne
(False), podobné je i Visible určující viditelnost prvku,
Font - druh písma a jeho vlastnosti,
TextAlign - zarovnání textu,
Height - výška,
Width - šířka,
Left - umístění zleva,
Top - umístění shora,

Zde měl být obrázek k TextBox

TextBox

Většina vlastností je stejná jako u Label, takže zmiňuji jen rozdíly. Value - do této vlastnosti se vloží hodnota, kterou po spuštění formuláře napíšeme do textového pole. S ní se dá dále pracovat, například provádět výpočty.

Akce

Máme-li představu, k čemu bude formulář sloužit, a máme-li vytvořený formulář, vložené objekty a změněné jejich vlastnosti, můžeme definovat akce. To je právě ta věc, která dělí strukturované programování (zjednodušeně řešeno, něco vložím do proměnných, něco s nimi udělám, zobrazím výsledek) od objektového. Objekt má nejen vlastnosti, ale i akce. Tady se omezím jen na akci kliknutí na příkazové tlačítko. Udělám-li to při vytváření, dostanu se do okna UserForm (Code) a v něm bude vidět následující:

Zde měl být obrázek k akci

Mezi příkazy Private Sub a End Sub mohu psát už dobře známé příkazy jazyka Visual Basic. Mohu tam pracovat i s vlastnostmi ostatních objektů, například Label1.Caption = "Ahoj" přepíše vlastnost Caption objektu Label1 a uživatel uvidí, že po kliknutí na tlačítko se jeden nápis změní na Ahoj. S vlastností TextBox1.Value mohu provádět výpočty, bude-li v ní zadáno číslo. Takže už nezbývá než zkoušet a vymýšlet.