Pokud v Excelu začnete psát makra ve Visual Basicu, zjistíte, že byste potřebovali něco, čím by se dané makro uživatele zeptalo na nějaký údaj, který by v různých situacích nemusel být stejný. Případně byste potřebovali, aby se uživateli ukázaly některé informace. Proto je možné jednoduše definovat pro zobrazení dva základní typy dialogových oken.
První typ je MsgBox. Jeho úkolem při zobrazení je pouze uživatele o něčem informovat, například o počtu dat, o spokojenosti, o splnění úkolu, nebo může zobrazit stručnou nápovědu či uživatele jen pozdravit (příklad Excel2013_MakraDialog.xlsm).
V kódu jazyka Visual Basic je syntaxe jeho zápisu následující:
MsgBox (text[, tlačítka], [, titulek] [, nápověda, kontext])
První parametr text je povinný a je v něm zapsán text, který se má v dialogovém okně zobrazit, například „Ahoj, jak se máš?“. Ostatní parametry jsou již nepovinné, ale některé z nich jsou užitečné. Druhý parametr tlačítka určuje, jaká tlačítka se mají v dialogovém okně zobrazit. Zobrazují se totiž na základě přesně zadaných konstant, které vám nejlépe ukáže následující tabulka:
konstanta
|
tlačítka
|
vbOKOnly
|
OK
|
vbOKCancel
|
OK, Storno
|
vbAbortRetryIgnore
|
Přerušit, Opakovat, Ignorovat
|
vbYesNoCancel
|
Ano, Ne, Storno
|
vbYesNo
|
Ano, Ne
|
vbRetryCancel
|
Opakovat, Storno
|
vbCritical
|
ikonka se symbolem křížku
|
vbQuestion
|
ikonka se symbolem otazníku
|
vbExclamation
|
ikonka se symbolem vykřičníku
|
vbInformation
|
ikonka se symbolem písmene I
|
Do dalšího parametru titulek můžete napsat text, který se bude zobrazovat v názvovém pruhu (titulku) dialogového okna, například slovo „Pozdrav“. Zbývající dva parametry slouží pro možnost zavolání nápovědy.
Jednoduché dialogové okno z předchozího obrázku vypadá zapsané v Editoru Visual Basicu následovně:
Pokud byste chtěli dát otázku, na kterou může člověk odpovědět jako Ano nebo Ne, pak by bylo třeba tento kód upravit.
S tím pak ale souvisí, že byste chtěli vědět, jak daný uživatel odpověděl. Je to jednoduché, protože MsgBox umí vrátit do proměnné hodnotu, která má pak přesný význam, uvedený v…