Ano Ne Pole se zprávou (Msgbox) - Příklady kódu VBA

Tento tutoriál se bude zabývat tím, jak pomocí funkce VBA MsgBox zobrazovat schránky zpráv uživatelům (včetně schránky zpráv YesNo). Také by vás mohl zajímat náš článek o InputBoxech.

Funkce VBA MsgBox

Ve VBA je snadné zobrazit jednoduchý MsgBox:

1 MsgBox „Toto je schránka zpráv“

Můžete však udělat mnohem víc, než zobrazit jednoduché okno se zprávou OK. Pojďme se rychle podívat na komplikovaný příklad, než se ponoříme do konkrétních…

VBA Ano Žádné pole se zprávou

Níže vytvoříme okno se zprávou s:

  • Název „Název pole zprávy“ a výzva „Text“
  • Ikona otazníku
  • Možnosti Ano / Ne namísto jednoduchého „OK“
  • Výchozí tlačítko = „Ne“
123 Dim odpověď jako celé čísloanswer = MsgBox ("Text", vbQuestion + vbYesNo + vbDefaultButton2, "Název pole zprávy")

Okno zpráv vrátí vbYes nebo vbNo v závislosti na výběru uživatele. Poté můžete na základě výběru provádět různé akce:

12345 If answer = vbYes ThenMsgBox „Ano“JinýMsgBox „Ne“Konec If

V další části vám ukážeme všechny možnosti, které máte při vytváření políček zpráv k dispozici. Potom vás seznámíme se syntaxí funkce MsgBox a nakonec si projdeme další příklady zpráv.

Možnosti schránky zpráv VBA

Podívejte se na obrázek níže. Zde uvidíte (téměř) všechny možnosti, které máte při vytváření políček zpráv k dispozici. Všímejte si ikon a různých tlačítek.

Toto je snímek obrazovky „MessageBox Builder“ z našeho doplňku Premium VBA: AutoMacro. MessageBox Builder vám umožňuje rychle navrhnout požadovanou schránku zpráv a vložit kód do modulu kódu. Obsahuje také mnoho dalších tvůrců kódu, rozsáhlou knihovnu kódů VBA a sortiment kódovacích nástrojů. To musí mít každý vývojář VBA.

Syntaxe funkce MsgBox

MsgBox (výzva [, tlačítka] [, název] [, soubor nápovědy, kontext])

výzva (povinné) - Toto je primární text zprávy.

tlačítka - Vyberte, která tlačítka chcete zobrazit. Pokud je vynecháno, „OKonly“. Zde můžete také určit, jakou ikonu zobrazit a výchozí tlačítko.

titul - Název v horní části pole se zprávou. Pokud je vynechán, zobrazí se název aktuální aplikace (např. Microsoft Excel).

pomocný soubor - Zadejte soubor nápovědy, ke kterému se lze dostat po kliknutí na tlačítko „Nápověda“. Pokud je zadáno, musíte také přidat kontext (níže)

kontext - Číselný výraz představující číslo kontextu nápovědy přiřazené k příslušnému tématu nápovědy.

Pravděpodobně můžete ignorovat soubor nápovědy a kontextové argumenty. Nikdy jsem je neviděl použité.

Přizpůsobte název a výzvu pole zprávy

Funkce MsgBox vám umožňuje přizpůsobit název a zprávy s výzvou takto:

1 Msgbox "Prompt", "Název"

Další příklad:

123 Sub MsgBoxPromptTitle ()MsgBox "Krok 1 dokončen. Krok 2 spustíte kliknutím na OK." "" Krok 1 z 5 "End Sub

Důležité! Nezapomeňte obklopit text uvozovkami.

MessageBox LineBreaks

Do výzev ve schránce zpráv můžete také přidat konce řádků pomocí „vbNewLine“.

123 Dílčí MsgBoxPromptTitle_NewLine ()MsgBox "Krok 1 dokončen." & vbNewLine & "Kliknutím na OK spustíte krok 2.", "Krok 1 z 5"End Sub

Všimněte si, že ke spojení textu používáme symbol &. Další informace o používání & s textem a dalších možnostech vkládání řádků najdete v našem článku o spojování textu.

Ikony MsgBox

VBA vám dává možnost přidat jednu ze čtyř předem připravených ikon do vašich zpráv:

Ikona konstantní Ikona
vbInformace
vbKritické
vbQuestion
vbExlamation

Konstantní ikona by měla být umístěna v argumentu tlačítka:

123 Sub MsgBoxQuestionIcon ()MsgBox "Question Question", vbQuestionEnd Sub

Tím se vygeneruje výchozí okno se zprávou „OK“ s ikonou Otázka:

Všimněte si, jak vám při psaní editor VBA ukáže možnosti, které máte k dispozici:

To je užitečné, protože si nemusíte pamatovat přesnou syntaxi ani názvy ikon nebo tlačítek.

Nyní předvedeme každou ikonu pole se zprávou:

Ikony MsgBox - informace

123 Sub MsgBoxInformationIcon ()MsgBox „Information Information“, vbInformationEnd Sub

Ikony MsgBox - kritické

123 Sub MsgBoxCriticalIcon ()MsgBox "Kritický příklad", vbCriticalEnd Sub

Ikony MsgBox - otázka

123 Sub MsgBoxQuestionIcon ()MsgBox "Question Question", vbQuestionEnd Sub

Ikony MsgBox - vykřičník

123 Sub MsgBoxExclamationIcon ()MsgBox "Příklad vykřičníku", vbExclamationEnd Sub

Níže budeme hovořit o generování polí zpráv s různým rozložením tlačítek. Pokud zvolíte jiný typ pole se zprávou, budete muset přidat typ ikony za tlačítka pomocí „+“:

123 Sub MsgBoxQuestionIcon ()MsgBox „Chcete pokračovat?“, VbOKCancel + vbQuestionEnd Sub

Proměnné MsgBox

Doposud jsme pracovali především s výchozím rámečkem zprávy „OK“. Okno se zprávou OK má pouze jednu možnost: Stisknutím tlačítka „OK“ umožní kód pokračovat. Můžete však zadat i další seskupení tlačítek: OK / Zrušit, Ano / Ne atd.

V takovém případě budete chtít provádět různé akce podle toho, jaké tlačítko stisknete. Podívejme se na příklad.

Zde je okno se zprávou, které vygenerujeme:

Toto je celý kód (dále ho rozdělíme):

123456789101112 Sub MsgBoxVariable ()Dim odpověď jako celé čísloanswer = MsgBox („Chcete pokračovat?“, vbQuestion + vbYesNo)If answer = vbYes ThenMsgBox „Ano“JinýMsgBox „Ne“Konec IfEnd Sub

Nejprve přiřadíme výstup schránky do celočíselné proměnné.

123 Dim odpověď jako celé čísloanswer = MsgBox („Chcete pokračovat?“, vbQuestion + vbYesNo)

Dále použijeme If-Else k určení, co dělat, podle toho, jaké tlačítko bylo stisknuto:

12345 If answer = vbYes ThenMsgBox „Ano“JinýMsgBox „Ne“Konec If

Funkce MsgBox vrací celočíselnou hodnotu (mezi 1-7), takže proměnnou definujeme jako celočíselný typ. Místo celočíselného čísla však můžete odkazovat na konstantu (např. VbOK, vbCancel atd.). V této tabulce jsou uvedeny všechny možnosti:

Knoflík Konstantní Hodnota
OK vbOK 1
zrušení vbCancel 2
Přerušit vbAbort 3
Zkuste to znovu vb Opakujte 4
Ignorovat vb Ignorovat 5
Ano vbAno 6
Ne vbNo 7

Nyní předvedeme seskupení jednotlivých tlačítek:

Okno se zprávou - vbOKOnly

Toto je standardní schránka zpráv VBA.

123456 Sub MsgBox_OKOnly ()Dim odpověď jako celé čísloanswer = MsgBox ("Příklad OKOnly", vbOKOnly)End Sub

OK Zrušit pole se zprávou - vbOKCancel

123456789101112 Sub MsgBox_OKCancel ()Dim odpověď jako celé čísloanswer = MsgBox ("OK Zrušit příklad", vbOKCancel)Pokud odpověď = vbOK ThenMsgBox "OK"JinýMsgBox "Zrušit"Konec IfEnd Sub

Ano Ne Pole se zprávou - vbYesNo

123456789101112 Sub MsgBox_YesNo ()Dim odpověď jako celé čísloanswer = MsgBox ("Yes No Example", vbYesNo)If answer = vbYes ThenMsgBox „Ano“JinýMsgBox „Ne“Konec IfEnd Sub

Ano Ne Zrušit pole se zprávou - vbYesNoCancel

1234567891011121314 Sub MsgBox_YesNoCancel ()Dim odpověď jako celé čísloanswer = MsgBox ("Ano Ne Zrušit příklad", vbYesNoCancel)If answer = vbYes ThenMsgBox „Ano“ElseIf answer = vbNo ThenMsgBox „Ne“JinýMsgBox "Zrušit"Konec IfEnd Sub

Přerušit Opakovat Ignorovat pole se zprávou - vbAbortRetryIgnore

1234567891011121314 Dílčí MsgBox_AbortRetryIgnore ()Dim odpověď jako celé čísloanswer = MsgBox ("Abort Retry Ignore Example", vbAbortRetryIgnore)If answer = vbAbort ThenMsgBox "Přerušit"ElseIf answer = vb Opakujte potomMsgBox „Opakovat“JinýMsgBox "Ignorovat"Konec IfEnd Sub

Opakovat Zrušit pole se zprávou - vbRetryCancel

123456789101112 Sub MsgBox_RetryCancel ()Dim odpověď jako celé čísloanswer = MsgBox ("Opakovat příklad zrušení", vbRetryCancel)If answer = vbRetry ThenMsgBox „Opakovat“JinýMsgBox "Zrušit"Konec IfEnd Sub

Příklady VBA MessageBoxu

Potvrzení pole se zprávou před spuštěním makra

Tento kód zobrazí pole Ano Ano před voláním makra. Pokud kliknete na Ano, zavolá se makro, pokud se klikne na Ne, makro se nespustí.

12345678 Dílčí Msgbox_BeforeRunning ()Dim odpověď jako celé čísloanswer = MsgBox („Chcete spustit Macro1?“, vbQuestion + vbYesNo)If answer = vbYes Then Call Macro1End Sub

Ano / Ne Okno se zprávou - Ukončit pod

Zde s uživatelem potvrdíme, zda pokračovat v běhu makra. Pokud kliknete na Ne, kód opustí dílčí část, jinak bude postup pokračovat.

12345678910 Sub Msgbox_BeforeRunning ()Dim odpověď jako celé čísloanswer = MsgBox („Chcete pokračovat?“, vbQuestion + vbYesNo)If answer = vbNo Then Exit Sub„Nějaký kódEnd Sub

Pole zpráv VBA v Access VBA

Všechny výše uvedené příklady fungují v Access VBA úplně stejně jako v Excelu VBA.

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave