Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
... použití dialogového okna ...
17.7.2014: Doplněno a aktualizováno.
V článku se dozvíte jak na dialogové okna v Excel za pomocí VBa maker. Pro přehlednost a rychlou orientaci je článek rozdělen na jednotlivé kapitoly:
Dialogové okno využijete nejen ke zobrazení chybových hlášek, ale také při splnění nějakého úkolu, nebo při potřebě zodpovědět jednoduchý dotaz (Chcete větší plat? ;). Uživatel si přečte informační text a buď potvrdí tlačítkem OK, že zprávu akceptovat, nebo může zvolit odpověď. Například ANO nebo NE.
Než dialogové okno budeme využívat podíváme se na jeho syntaxi a co znamenají jednotlivé parametry (jaký mají význam, jakých hodnot mohou nabývat).
MsgBox(prompt [, buttons] [, title] [, helpfile, context])
Popis argumentů:
Poznámka k nastavení: Chcete-li některé poziční argumenty vynechat, musíte vložit odpovídající počet čárek.
Buttons skládá se ze čtyř skupin:
Buttons - programátorské nastavení:
| Konstanta | Hodnota | Popis |
|---|---|---|
| vbOKOnly | 0 | Zobrazí pouze tlačítko OK. Platí i v případě pokud neuvedeme žádnou hodnotu. (viz příklad níže) |
| VbOKCancel | 1 | Zobrazí tlačítka OK a Storno. |
| VbAbortRetryIgnore | 2 | Zobrazí tlačítka Zpět, Znovu a Ignorovat. |
| VbYesNoCancel | 3 | Zobrazí tlačítka Ano, Ne a Storno. |
| VbYesNo | 4 | Zobrazí tlačítka Ano a Ne. |
| VbRetryCancel | 5 | Zobrazí tlačítka Znovu a Storno. |
| VbCritical | 16 | Zobrazí ikonu Kritická zpráva. |
| VbQuestion | 32 | Zobrazí ikonu Varovný dotaz. |
| VbExclamation | 48 | Zobrazí ikonu Varovná zpráva. |
| VbInformation | 64 | Zobrazí ikonu Informační zpráva |
| VbDefaultButton1 | 0 | Výchozí je první tlačítko |
| VbDefaultButton2 | 256 | Výchozí je druhé tlačítko. |
| VbDefaultButton3 | 512 | Výchozí je třetí tlačítko |
| VbDefaultButton4 | 768 | Výchozí je čtvrté tlačítko |
| VbApplicationModal | 0 | Aplikační režim; uživatel musí před pokračováním další práce ve zvolené aplikaci odpovědět na zprávu |
| VbSystemModal | 4096 | Systémový režim; všechny aplikace jsou pozastaveny, dokud uživatel neodpoví na zobrazenou zprávu |
Varianta 1
Private Sub CommandButton2_Click()
MsgBox ("Moje první okno.")
End Sub
Varianta 2
Private Sub CommandButton2_Click()
i = MsgBox ("Moje první okno.", , "Nadpis okna")
End Sub
Varianta 1
i = MsgBox("Chcete větší plat?", vbYesNo, "Plat")
Varianta 2
i = MsgBox("Chcete větší plat?", 4, "Plat")
Varianta 3 - vyhodnocení odpovědi
Private Sub CommandButton1_Click()
i = MsgBox("Chcete větší plat?", vbYesNo, "Plat")
' vyhodnocení odpovědi
Select Case i
Case vbNo
MsgBox ("NE")
Case vbYes
MsgBox ("ANO")
End Select
End Sub
Pokud využíváte tlačítka doporučuji prostudovat kapitolu:
Varianta 1
i = MsgBox("Co chceš udělat ?", vbAbortRetryIgnore, "Menu text")
Varianta 2
i = MsgBox("Co chceš udělat ?", 2, "Menu text")
Nastavení buttons (tlačítek) jsou následující (Konstanta - Hodnota - Popis):
Poznámka: Některé popisy se mohou mírně lišit na základě verze a nastavení MS Windows.
Pokud využíváte tlačítka doporučuji prostudovat kapitolu:
Private Sub CommandButton4_Click()
i = MsgBox("Ahoj", vbOKOnly + vbCritical)
i = MsgBox("Ahoj", vbOKOnly + vbQuestion)
i = MsgBox("Ahoj", vbOKOnly + vbExclamation)
i = MsgBox("Ahoj", vbOKOnly + vbInformation)
End Sub
Nastavení ikonek jsou následující (Konstanta - Hodnota - Popis):
Poznámka: Tlačítko OK doplní VBA automaticky.
Pokud využíváte tlačítka doporučuji prostudovat kapitolu:
MsgBox "První řádek" & vbCrLf & "Druhý řádek" & vbCrLf & "Třetí řádek"
MsgBox Chr(200) & " jiný znak " & Chr(244)
Pokud potřebujeme zobrazit výsledek výpočtu, který máme v buňce.
MsgBox "Hodnota v buňce A1 je: " & Range("A1").Value
Jednotlivé příklady spojeny do jednoho. Tj. ukázka jak, že můžeme kombinovat.
i = MsgBox("Tak co jdeme na pivo ? " & vbCrLf & "Druhý řádek" & vbCrLf & "Třetí řádek" & vbCrLf & "Hodnota v buňce A1 je: " & Range("A1").Value & vbCrLf & "Specialní znak: " & Chr(244), vbYesNo + 256 + vbQuestion, " P I V O ! ! ")
Vracené hodnoty na základě zvolených tlačítek (Konstanta - Hodnota - - Popis)
Ukázka využití návratového kódu
Private Sub CommandButton1_Click()
i = MsgBox("Chcete větší plat?", vbYesNo, "Plat")
' vyhodnocení odpovědi
Select Case i
Case vbNo
MsgBox ("NE - správna odpověď! ")
Case vbYes
MsgBox ("ANO - zvolte jinou odpověď ;)")
End Select
End Sub
Jednotlivé kódy se sčítají, výsledná hodnota je součtem požadovaných tlačítek, ikon, přednastaveného tlačítka..
Pokud potřebujete doplnit dialogové okno o nápovědu. Nejprve musíte mít k dispozici helpfile (soubor s nápovědou). Pokud je nápověda správně vytvořená můžete se v rámci tohoto souboru odkazovat na konkrétní kapitolu context. Pokud nápověda není dobře členěná jako Context udejte 0.
souborNapoveda = "D:\mujhelp.chm"
ZpravaVcetneNapovedy = MsgBox("Nápověda", vbOKCancel + vbQuestion + _
vbDefaultButton1 + vbMsgBoxHelpButton, "Zobrazí nápovědu - help", souborNapoveda, 0)
Kód byl nalezen na internetu, vypadá funkční. Funguje jen na tlačítka ANO NE.
MsgBox "Zavření přes horní X zablokováno.", 20, "NÁZEV OKNA"
Osobně jsem nikdy nepoužil, ale byl dotaz v komentářích tak jsem doplnil odpověď i do článku.
Měl jsem pár dotazů jak do MsgBoxu zadávat hodnoty. To nejde na to je InputBox.
Návod jak na InputBox jsem sepsal v samostatném článku o InputBox.
Hotové ukázkové příklady ke stažení:
Dialogové okno - MsgBox - VBA Excel - prakticky.
![]()
Využívate dialogové okna? Máte nějaký speciální kód pro práci s dialogovým oknem? Můžete se pochlubit v komentářích.
Článek byl aktualizován: 19.09.2020 11:06
Pomohl vám článek? Vyřešili jste problém? Můžete mě podpořit zakoupení tabulky (samozdřejmě čokoládové), když kafe nepiji ;) Odkaz na zakoupení čokolády. Za veškerou podporu vám děkuji a samozdřejmě jí využiji do zdokonalování a rozšířování webu.
Případně přidejte odkaz na vaši oblíbenou sociální síť, případně využijste hashtag #JakNaExcel .
Děkuji za váš čas a doufám, že jste nalezli odpověď na svůj problém.
Narazili jste v článku na nejasnost, chybu? Máte tip na vylepšení nebo doplnění článku? Budu rád pokud se zmínite v komentářích.
Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od dubna roku 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím 8x za sebou). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 20 let (o Excel píší přes 25). Zdarma je zde přes 1.500 návodu, tipů a triků, včetně přes 350 různých šablon, sešitů a přes 70 taháků v pdf.
|
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
|
LinkedIn... |
Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2025 |