Excel VBA MsgBox (okno so správou) - všetko, čo potrebujete vedieť!

V programe Excel VBA môžete na zobrazenie okna so správou použiť funkciu MsgBox (ako je uvedené nižšie):

MsgBox nie je nič iné ako dialógové okno, ktoré môžete použiť na informovanie svojich používateľov zobrazením vlastnej správy alebo získaním niektorých základných vstupov (napríklad Áno/Nie alebo OK/Zrušiť).

Kým je zobrazené dialógové okno MsgBox, váš kód VBA je zastavený. Na spustenie zostávajúceho kódu VBA musíte kliknúť na akékoľvek tlačidlo v MsgBox.

Poznámka: V tomto návode budem zameniteľné používať pole so správami a MsgBox. Pri práci s Excelom VBA musíte vždy používať MsgBox.

Anatómia VBA MsgBox v programe Excel

Okno so správou má nasledujúce časti:

  1. Názov: Toto sa zvyčajne používa na zobrazenie toho, o čom je okno so správou. Ak nič nezadáte, zobrazí sa názov aplikácie - čo je v tomto prípade Microsoft Excel.
  2. Promptný: Toto je správa, ktorú chcete zobraziť. Tento priestor môžete použiť na napísanie niekoľkých riadkov alebo dokonca zobrazenie tabuliek/údajov.
  3. Tlačidlá: Aj keď je tlačidlo OK predvoleným tlačidlom, môžete ho prispôsobiť tak, aby zobrazovalo tlačidlá ako napríklad Áno/Nie, Áno/Nie/Zrušiť, Skúsiť znova/Ignorovať atď.
  4. Ikona Zavrieť: Okno so správou môžete zavrieť kliknutím na ikonu zatvorenia.

Syntax funkcie VBA MsgBox

Ako som už spomenul, MsgBox je funkcia a má syntax podobnú ako ostatné funkcie VBA.

MsgBox (výzva [, tlačidlá] [, názov] [, súbor pomoci, kontext])

  • promptné - Toto je požadovaný argument. Zobrazí správu, ktorú vidíte v MsgBox. V našom prípade je „výzva“ text „Toto je ukážkový MsgBox“. Vo výzve môžete použiť až 1024 znakov a môžete ho použiť aj na zobrazenie hodnôt premenných. V prípade, že chcete zobraziť výzvu, ktorá má viac riadkov, môžete to urobiť tiež (viac o tom neskôr v tomto návode).
  • [tlačidlá] - Určuje, ktoré tlačidlá a ikony sa zobrazia v MsgBox. Ak napríklad použijem vbOkOnly, zobrazí iba tlačidlo OK a ak vbOKCancel, zobrazí tlačidlá OK aj Zrušiť. Rôznym druhom tlačidiel sa budem venovať neskôr v tomto návode.
  • [názov] - Tu môžete v dialógovom okne správy určiť, aké titulky chcete. Toto sa zobrazuje v záhlaví panela MsgBox. Ak nič nezadáte, zobrazí sa názov aplikácie.
  • [súbor pomoci] - Môžete zadať súbor pomocníka, ku ktorému sa dostanete, keď používateľ klikne na tlačidlo Pomocník. Tlačidlo pomoci sa zobrazí iba vtedy, ak naň použijete kód tlačidla. Ak používate súbor pomocníka, musíte tiež zadať kontextový argument.
  • [kontext] - Jedná sa o číselný výraz, ktorý je kontextovým číslom Pomocníka priradeným k príslušnej téme Pomocníka.

Ak ste novým konceptom Msgbox, pokojne ignorujte argumenty [pomocný súbor] a [kontext]. Málokedy som videl, že by sa tieto používali.

Poznámka: Všetky argumenty v hranatých zátvorkách sú voliteľné. Povinný je iba argument „prompt“.

Konštanty tlačidiel Excel VBA MsgBox (príklady)

V tejto časti sa budem zaoberať rôznymi druhmi tlačidiel, ktoré môžete používať s VBA MsgBox.

Predtým, ako vám ukážem kód VBA a ako MsgBox vyzerá, je tu tabuľka, v ktorej sú uvedené všetky rôzne konštanty tlačidiel, ktoré môžete použiť.

Konštanta tlačidla Popis
vbOKOnly Zobrazuje iba tlačidlo OK
vbOKCancel Zobrazuje tlačidlá OK a Zrušiť
vbAbortRetryIgnore Zobrazuje tlačidlá Prerušiť, Skúsiť znova a Ignorovať
vbÁnoNie Zobrazuje tlačidlá Áno a Nie
vbYesNoCancel Zobrazuje tlačidlá Áno, Nie a Zrušiť
vbRetryCancel Zobrazuje tlačidlá Skúsiť znova a Zrušiť
vbMsgBoxHelpButton Zobrazí tlačidlo Pomocník. Aby to fungovalo, musíte vo funkcii MsgBox použiť pomocné a kontextové argumenty
vbDefaultButton1 Nastaví prvé tlačidlo ako predvolené. Môžete zmeniť číslo a zmeniť tak predvolené tlačidlo. Napríklad vbDefaultButton2 nastaví druhé tlačidlo ako predvolené

Poznámka: Pri skúmaní príkladov vytvárania rôznych tlačidiel vás môže zaujímať, aký má zmysel mať tieto tlačidlá, ak to nemá žiadny vplyv na kód.

Robí! Na základe výberu môžete kódovať, čo má kód robiť. Ak napríklad vyberiete OK, kód by mal pokračovať a ak kliknete na Zrušiť, kód by sa mal zastaviť. To sa dá dosiahnuť použitím premenných a priradením hodnoty schránky správ premennej. Tomu sa budeme venovať v ďalších častiach tohto tutoriálu.

Teraz sa pozrime na niekoľko príkladov toho, ako môžu byť rôzne tlačidlá zobrazené v MsgBoxe a ako to vyzerá.

Tlačidlá MsgBox - vbOKOnly (predvolené)

Ak použijete iba výzvu a nezadáte žiadny z argumentov, zobrazí sa predvolené okno so správou, ako je uvedené nižšie:

Nasleduje kód, ktorý poskytne toto pole so správou:

Sub DefaultMsgBox () MsgBox "Toto je vzorový rámček" Koniec pod

Upozorňujeme, že textový reťazec musí byť v dvojitých úvodzovkách.

Môžete tiež použiť konštantu tlačidiel vbOKOnly, ale aj keď nič neurčíte, bude sa to považovať za predvolené.

Tlačidlá MsgBox - OK a zrušiť

Ak chcete zobraziť iba tlačidlo OK a tlačidlo Zrušiť, musíte použiť konštantu vbOKCancel.

Sub MsgBoxOKCancel () MsgBox „Chcete pokračovať?“, VbOKCancel Koniec Sub

Tlačidlá MsgBox - prerušiť, skúsiť znova a ignorovať

Konštantu „vbAbortRetryIgnore“ môžete použiť na zobrazenie tlačidiel Abort, Retry a Ignore.

Sub MsgBoxAbortRetryIgnore () MsgBox "Čo chcete robiť?", VbAbortRetryIgnore Koniec Sub

Tlačidlá MsgBox - áno a nie

Na zobrazenie tlačidiel Áno a Nie môžete použiť konštantu „vbYesNo“.

Sub MsgBoxYesNo () MsgBox „Mali by sme prestať?“, VbYesNo End Sub

Tlačidlá MsgBox - áno, nie a zrušiť

Konštantu „vbYesNoCancel“ môžete použiť na zobrazenie tlačidiel Áno, Nie a Zrušiť.

Sub MsgBoxYesNoCancel () MsgBox „Mali by sme prestať?“, VbYesNoCancel Koniec Sub

Tlačidlá MsgBox - Skúste to znova a zrušte

Konštantu „vbRetryCancel“ môžete použiť na zobrazenie tlačidiel Opakovať a Zrušiť.

Sub MsgBoxRetryCancel () MsgBox „Čo chcete robiť ďalej?“, VbRetryCancel Koniec Sub

Tlačidlá MsgBox - tlačidlo Pomocník

Na zobrazenie tlačidla pomocníka môžete použiť konštantu „vbMsgBoxHelpButton“. Môžete ho použiť s inými konštantami tlačidiel.

Sub MsgBoxRetryHelp () MsgBox „Čo chcete robiť ďalej?“, VbRetryCancel + vbMsgBoxHelpButton End Sub

Všimnite si toho, že v tomto kóde sme skombinovali dve rôzne konštanty tlačidiel (vbRetryCancel + vbMsgBoxHelpButton). Prvá časť zobrazuje tlačidlá Opakovať a Zrušiť a druhá časť zobrazuje tlačidlo Pomocník.

Tlačidlá MsgBox - nastavenie predvoleného tlačidla

Na nastavenie prvého tlačidla ako predvoleného môžete použiť konštantu „vbDefaultButton1“. To znamená, že tlačidlo je už vybraté a ak stlačíte kláves Enter, dané tlačidlo sa spustí.

Nasleduje kód, ktorý nastaví druhé tlačidlo (tlačidlo „Nie“) ako predvolené.

Sub MsgBoxOKCancel () MsgBox „Čo chcete robiť ďalej?“, VbYesNoCancel + vbDefaultButton2 End Sub

Vo väčšine prípadov je tlačidlo úplne vľavo predvoleným tlačidlom. Ostatné tlačidlá môžete vybrať pomocou tlačidiel vbDefaultButton2, vbDefaultButton3 a vbDefaultButton4.

Konštanty ikon Excel VBA MsgBox (príklady)

Okrem tlačidiel si môžete prispôsobiť aj ikony, ktoré sa zobrazujú v dialógovom okne MsgBox. Môžete mať napríklad červenú kritickú ikonu alebo modrú informačnú ikonu.

Nasleduje tabuľka so zoznamom kódov, ktoré zobrazia zodpovedajúcu ikonu.

Ikona konštantná Popis
vbKritické Zobrazuje ikonu kritickej správy
vbQuestion Zobrazuje ikonu otázky
vbVyhlásenie Zobrazuje ikonu výstražnej správy
vbInformácie Zobrazuje ikonu informácií

Ikony MsgBox - kritické

Ak chcete vo svojom MsgBoxe zobraziť kritickú ikonu, použite konštantu vbCritical. Môžete to použiť spolu s inými konštantami tlačidiel (vložením znaku + medzi kódy).

Nižšie je napríklad kód, ktorý zobrazí predvolené tlačidlo OK s kritickou ikonou.

Sub MsgBoxCriticalIcon () MsgBox „This is a sample box“, vbCritical End Sub

Ak chcete pomocou tlačidiel Áno a Nie zobraziť kritickú ikonu, použite nasledujúci kód:

Sub MsgBoxCriticalIcon () MsgBox „Toto je ukážkový box“, vbYesNo + vbCritical End Sub

Ikony MsgBox - otázka

Ak chcete vo svojom MsgBoxe zobraziť kritickú ikonu, použite konštantu vbQuestion.

Sub MsgBoxQuestionIcon () MsgBox „Toto je ukážkový box“, vbYesNo + vbQuestion End Sub

Ikony MsgBox - výkričník

Ak chcete vo svojom MsgBoxe zobraziť ikonu výkričníka, použite konštantu vbExclamation.

Sub MsgBoxExclamationIcon () MsgBox „This is a sample box“, vbYesNo + vbExclamation End Sub Sub

Ikony MsgBox - informácie

Ak chcete vo svojom MsgBoxe zobraziť informačnú ikonu, použite konštantu vbInformation.

Sub MsgBoxInformationIcon () MsgBox „This is a sample box“, vbYesNo + vbInformation End Sub

Prispôsobenie názvu a výzvy v MsgBox

Pri použití MsgBox si môžete prispôsobiť názov a správy s výzvou.

V príklade, ktorý sme doteraz videli, bol ako nadpis použitý Microsoft Excel. V prípade, že nezadáte argument názvu, MsgBox automaticky použije názov aplikácie (v tomto prípade to bol Microsoft Excel).

Názov môžete prispôsobiť jeho zadaním v kóde, ako je uvedené nižšie:

Sub MsgBoxInformationIcon () MsgBox „Chcete pokračovať?“, VbYesNo + vbQuestion, „krok 1 z 3“ Ukončiť podradenú položku

Podobne môžete tiež prispôsobiť správu s výzvou.

Do správy s výzvou môžete pridať aj zalomenie riadka.

Do nižšie uvedeného kódu som pridal zlom riadka pomocou príkazu „vbNewLine“.

Sub MsgBoxInformationIcon () MsgBox "Chcete pokračovať?" & vbNový riadok & „Pokračujte kliknutím na tlačidlo Áno“, vbYesNo + vbQuestion, „krok 1 z 3“ End Sub

Na vloženie nového riadka do správy s výzvou môžete použiť aj znak návratu vozíka - Chr (13) - alebo posun riadka - Chr (10).

Upozorňujeme, že do riadkovej správy môžete pridať iba nový riadok, nie názov.

Priradenie hodnoty MsgBox premennej

Doposiaľ sme videli príklady, kde sme vytvorili schránky správ a prispôsobili tlačidlá, ikony, nadpis a výzvu.

Kliknutím na tlačidlo sa však nič neurobí.

S funkciou MsgBox v Exceli sa môžete rozhodnúť, čo chcete robiť, keď používateľ klikne na konkrétne tlačidlo. A je to možné, pretože ku každému tlačidlu je priradená hodnota.

Ak teda kliknem na tlačidlo Áno, funkcia MsgBox vráti hodnotu (6 alebo konštantu vbYes), ktorú môžem použiť vo svojom kóde. Podobne, ak používateľ vyberie tlačidlo Nie, vráti inú hodnotu ((7 alebo konštantu vbNo)), ktorú môžem použiť v kóde.

Nasleduje tabuľka, ktorá ukazuje presné hodnoty a konštanty vrátené funkciou MsgBox. Tieto si nemusíte pamätať, stačí si to uvedomiť a môžete použiť konštanty, ktoré sa používajú jednoduchšie.

Kliknutie na tlačidlo Konštantný Hodnota
Ok vbOk 1
Zrušiť vbCancel 2
Prerušiť vbAbort 3
Skúsiť znova vbSkúsiť 4
Ignorovať vbIgnorovať 5
Áno vbÁno 6
Nie vbNo 7

Teraz sa pozrime, ako môžeme ovládať kód makra VBA na základe toho, na ktoré tlačidlo používateľ klikne.

V nižšie uvedenom kóde, ak používateľ klikne na tlačidlo Áno, zobrazí sa hlásenie „Klikli ste na tlačidlo Áno“ a ak používateľ klikne na tlačidlo Nie, zobrazí sa text „Na tlačidlo ste klikli“.

Sub MsgBoxInformationIcon () Výsledok = MsgBox („Chcete pokračovať?“, VbYesNo + vbQuestion) Ak Výsledok = vbYes Then MsgBox "Klikli ste Áno" Iná: MsgBox "Klikli ste Nie" Koniec Ak Koniec Sub

Vo vyššie uvedenom kóde som premennej Result priradil hodnotu funkcie MsgBox. Keď kliknete na tlačidlo Áno, premenná výsledku dostane konštantu vbYes (alebo číslo 6) a keď kliknete na nie, premenná výsledku dostane konštantu vbNo (alebo číslo 7).

Potom som pomocou konštrukcie If Then Else skontroloval, či premenná Výsledok obsahuje hodnotu vbYes. Ak áno, zobrazí sa výzva „Klikli ste Áno“, v opačnom prípade „Klikli ste Nie“.

Rovnaký koncept môžete použiť na spustenie kódu, ak používateľ klikne na tlačidlo Áno a podponuku opustí, keď klikne na tlačidlo Nie.

Poznámka: Keď priradíte výstup MsgBox k premennej, musíte vložiť argumenty funkcie MsgBox do zátvorky. Napríklad v riadku Výsledok = MsgBox („Chcete pokračovať?“, VbYesNo + vbQuestion), vidíte, že argumenty sú v zátvorke.

Ak sa chcete ďalej venovať funkcii schránky správ, tu je jej oficiálny dokument.

Tiež by sa vám mohli páčiť nasledujúce návody na Excel VBA:

  • Funkcia rozdelenia VBA programu Excel.
  • Funkcia Excel VBA InStr.
  • Práca s bunkami a rozsahmi v programe Excel VBA.
  • Práca s pracovnými listami vo VBA.
  • Práca so zošitmi vo VBA.
  • Použitie slučiek v programe Excel VBA.
  • Pochopenie dátových typov Excel VBA (premenné a konštanty)
  • Ako vytvoriť a používať osobný zošit makier v programe Excel.
  • Užitočné príklady kódu makra v Exceli.
  • Použitie pre ďalšiu slučku v programe Excel VBA.
  • Udalosti Excel VBA - ľahký (a kompletný) sprievodca.
  • Ako spustiť makro v programe Excel-Kompletný sprievodca krok za krokom.
  • Ako vytvoriť a používať doplnok Excel.

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave