Přeskočit navigaci | Přeskočit na novinky
     

Jste zde: Úvodní stránka » excel » vba-formulare » excel-vba-dialogove-okno-msgbox
Logo pokročilý expert

MsgBox - dialogové okno - VBA Excel


Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

... použití dialogového okna ...

17.7.2014: Doplněno a aktualizováno.

Přehled kapitol

Microsoft Excel logo

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:


Trocha teorie

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).

Syntaxe:

MsgBox(prompt [, buttons] [, title] [, helpfile, context])

Popis argumentů:

  • prompt - Povinné. Výraz zobrazený jako zpráva v dialogu. Délka max. 1024 znaků
  • buttons - Nepovinné. Číslo - je součtem čísel udávající zobrazená tlačítka, ikonu a předvoleného tlačítka. Nebo lze použít konstantu udávající typ tlačítka. Výchozí hodnota 0.
  • title Nepovinné. Záhlaví dialogu. Pokud není uveden je v záhlaví název aplikace.
  • helpfile - Nepovinné. Název souboru s nápovědou. Povinné pokud je uveden context
  • context - Nepovinné. Číslo kontextové nápovědy přiřazené odpovídajícímu heslu. Pouze v případě, že je uveden helpfile.

Poznámka k nastavení: Chcete-li některé poziční argumenty vynechat, musíte vložit odpovídající počet čárek.

Buttons

Buttons skládá se ze čtyř skupin:

  1. (0–5) popisuje počet a typ tlačítek zobrazených v dialogu
  2. (16, 32, 48, 64) určuje styl ikony
  3. (0, 256, 512) určuje výchozí tlačítko
  4. (0, 4096) určuje režim dialogu

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

První dialogové okno

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
MS Excel msgbox

Okno odpověď ANO NE

Varianta 1

     i = MsgBox("Chcete větší plat?", vbYesNo, "Plat")

Varianta 2

     i = MsgBox("Chcete větší plat?", 4, "Plat")
MS Excel msgbox

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

Poznámka

Pokud využíváte tlačítka doporučuji prostudovat kapitolu:

Přerušit Opakovat Přeskočit

MS Excel msgbox

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):

  • vbOKOnly - 0 - - Zobrazí pouze tlačítko OK
  • VbOKCancel - 1 - - Zobrazí tlačítka OK a Storno.
  • VbAbortRetryIgnore - 2 - - Zobrazí tlačítka Přerušit Opakovat Přeskočit (některé verze Windows 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

Poznámka: Některé popisy se mohou mírně lišit na základě verze a nastavení MS Windows.

Poznámka

Pokud využíváte tlačítka doporučuji prostudovat kapitolu:

Dialogové okno s ikonou a tlačítkem

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
MS Excel msgbox
MS Excel msgbox MS Excel msgbox MS Excel msgbox

Nastavení ikonek jsou následující (Konstanta - Hodnota - Popis):

  • 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

Poznámka: Tlačítko OK doplní VBA automaticky.

Poznámka

Pokud využíváte tlačítka doporučuji prostudovat kapitolu:

Dialogové okno: text do více řádku

    MsgBox "První řádek" & vbCrLf & "Druhý řádek" & vbCrLf & "Třetí řádek"
MS Excel msgbox

Dialogové okno speciální znaky

    MsgBox Chr(200) & " jiný znak " & Chr(244)
MS Excel msgbox

Dialogové okno - hodnota z buňky

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
MS Excel msgbox

Dialogové okno vše dohromady

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 ! ! ")
MS Excel msgbox

Návratové hodnoty

Vracené hodnoty na základě zvolených tlačítek (Konstanta - Hodnota - - Popis)

  • vbOK - 1 - - OK
  • vbCancel - 2 - - Storno
  • vbAbort - 3 - - Zpět
  • vbRetry - 4 - - Znovu
  • vbIgnore - 5 - - Ignorovat
  • vbYes - 6 - - Ano
  • vbNo - 7 - - Ne

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

Přednastavené tlačítko

Pokud se nelíbí první vybrané tlačítko. Jak definovat (Konstanta - Hodnota - - Popis):

  • VbDefaultButton1 - 0 - - Výchozí je první tlačítko.
  • VbDefaultButton2 - 256 - - Výchozí je druhé tlačítko.
  • VbDefaultButton3 - 512 - - Třetí tlačítko.
  • VbDefaultButton4 - 768 - - Čtvrté tlačítko.

Jednotlivé kódy se sčítají, výsledná hodnota je součtem požadovaných tlačítek, ikon, přednastaveného tlačítka..

Doplnění MsgBox o nápovědu

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)

MsgBox bez aktivního X

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.

MsgBox zadávat hodnoty

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.

Ke stažení

Hotové ukázkové příklady ke stažení: Dialogové okno - MsgBox - VBA Excel - prakticky. soubor ve formátu *.xls

Závěrem

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

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). 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 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře

" ; // echo "kompletni_cesta :" ; // echo $adresar_pro_vkladani ; // echo "
" ; // echo " Tady bude možnost přidání komentáře" ; // echo "
" ; // echo "
" ; $kompletni_cesta = "komentare"; $adresar_pro_vkladani = $kompletni_cesta; ?> \n"; reset($polozky); while (list($key, $val) = each($polozky)) { if ($val != "." && $val != "..") { if (!is_dir($val)) { // echo "$val
\n"; $fp = FOpen ($adresar_pro_vkladani."/".$val, "r"); //otevře soubor book.dat pro čtení $data = FRead ($fp, FileSize($adresar_pro_vkladani."/".$val)); //přečte data ze souboru a uloží do proměnné "data" - kvůli tomu aby se zobrazoval poslední příspěvek nahoře FClose($fp); echo "$data"; } } } ?>




Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

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 - 2020 |