Áno Nie Pole so správou (Msgbox) - Príklady kódu VBA

Tento tutoriál sa bude zaoberať tým, ako používať funkciu VBA MsgBox na zobrazenie schránok správ používateľom (vrátane schránky správ YesNo). Tiež by vás mohol zaujímať náš článok o InputBoxoch.

Funkcia VBA MsgBox

Vo VBA je ľahké zobraziť jednoduchý MsgBox:

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

Môžete však urobiť oveľa viac, ako zobraziť jednoduché pole správ OK. Pozrime sa rýchlo na komplikovaný príklad, než sa ponoríme do konkrétnych…

VBA Áno

Nižšie vytvoríme okno so správou s:

  • Názov „Názov poľa správy“ a výzva „Text“
  • Ikona otáznika
  • Možnosti áno / nie namiesto jednoduchého „OK“
  • Predvolené tlačidlo = „Nie“
123 Dim odpoveď ako celé čísloanswer = MsgBox ("Text", vbQuestion + vbYesNo + vbDefaultButton2, "Názov poľa správy")

Okno so správami vráti vbYes alebo vbNo v závislosti od voľby používateľa. Potom môžete vykonávať rôzne akcie na základe výberu:

12345 Ak odpoveď = vbÁno PotomMsgBox „Áno“InakMsgBox „Nie“Koniec Ak

V ďalšej časti vám ukážeme všetky možnosti, ktoré máte k dispozícii pri vytváraní schránok správ. Potom vás zoznámime so syntaxou funkcie MsgBox a nakoniec si prejdeme ďalšie príklady zo schránky so správou.

Možnosti schránky správ VBA

Pozrite sa na obrázok nižšie. Tu uvidíte (takmer) všetky možnosti, ktoré máte k dispozícii pri vytváraní schránok správ. Všimnite si ikon a rôznych tlačidiel.

Toto je snímka obrazovky „MessageBox Builder“ z nášho doplnku Premium VBA: AutoMacro. MessageBox Builder vám umožňuje rýchlo navrhnúť požadovanú schránku správ a vložiť kód do modulu kódu. Obsahuje tiež mnoho ďalších tvorcov kódu, rozsiahlu knižnicu kódov VBA a sortiment kódovacích nástrojov. Je to nevyhnutné pre každého vývojára VBA.

Syntax funkcie MsgBox

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

výzva (povinné) - Toto je hlavný text poľa správy.

tlačidlá - Vyberte, ktoré tlačidlá sa majú zobraziť. Ak je vynechaný, „OKonly“. Tu môžete tiež určiť, ktorá ikona sa má zobraziť, a predvolené tlačidlo.

titul - Názov v hornej časti poľa so správou. Ak je vynechaný, zobrazí sa názov aktuálnej aplikácie (napr. Microsoft Excel).

pomocný súbor - Zadajte súbor pomocníka, ku ktorému sa dostanete, keď používateľ klikne na tlačidlo „Pomocník“. Ak je uvedené, musíte tiež pridať kontext (nižšie)

kontext - Číselný výraz predstavujúci číslo kontextu pomoci priradené k príslušnej téme pomoci.

Pravdepodobne môžete ignorovať súbor pomocníka a kontextové argumenty. Nikdy som ich nevidel použitých.

Prispôsobte názov a výzvu poľa správy

Funkcia MsgBox vám umožňuje prispôsobiť titul a správy s výzvou takto:

1 Msgbox "Výzva", "Názov"

Ďalší príklad:

123 Sub MsgBoxPromptTitle ()MsgBox "Krok 1 je dokončený. Kliknutím na tlačidlo OK spustíte krok 2." "" Krok 1 z 5 "Koniec pod

Dôležité! Musíte pamätať na to, že svoj text obklopíte citátmi.

MessageBox LineBreaks

Do výziev do poľa so správou môžete tiež pridať zlomy riadkov pomocou „vbNewLine“.

123 Sub MsgBoxPromptTitle_NewLine ()MsgBox "Krok 1 dokončený." & vbNový riadok & „Kliknutím na tlačidlo OK spustíte krok 2.“, „Krok 1 z 5“Koniec pod

Všimnite si toho, že na spájanie textu používame symbol &. Viac informácií o používaní & s textom a ďalších možnostiach vkladania zlomov riadkov sa dozviete v našom článku o spájaní textu.

Ikony MsgBox

VBA vám dáva možnosť pridať do schránok so správami jednu zo štyroch vopred pripravených ikon:

Ikona konštantná Ikona
vbInformácie
vbKritické
vbQuestion
vbVyhlásenie

Konštanta ikon by mala byť umiestnená v argumente tlačidla:

123 Sub MsgBoxQuestionIcon ()MsgBox „Príklad otázky“, vbQuestionKoniec pod

Toto vygeneruje predvolené okno so správou „OK“ s ikonou otázky:

Všimnite si, ako vám pri písaní editor VBA zobrazí možnosti, ktoré máte k dispozícii:

Je to užitočné, pretože si nemusíte pamätať presnú syntax alebo názvy ikon alebo tlačidiel.

Teraz ukážeme každú ikonu poľa so správou:

Ikony MsgBox - informácie

123 Sub MsgBoxInformationIcon ()MsgBox „Príklad informácií“, vbInformationKoniec pod

Ikony MsgBox - kritické

123 Sub MsgBoxCriticalIcon ()MsgBox „Kritický príklad“, vbCriticalKoniec pod

Ikony MsgBox - otázka

123 Sub MsgBoxQuestionIcon ()MsgBox „Príklad otázky“, vbQuestionKoniec pod

Ikony MsgBox - výkričník

123 Sub MsgBoxExclamationIcon ()MsgBox „Príklad výkričníka“, vbExclamationKoniec pod

Ďalej budeme hovoriť o generovaní schránok správ s rôznym rozložením tlačidiel. Ak vyberiete iný typ poľa so správou, budete musieť za tlačidlá pridať typ ikony pomocou znamienka „+“:

123 Sub MsgBoxQuestionIcon ()MsgBox „Chcete pokračovať?“, VbOKCancel + vbQuestionKoniec pod

Premenné MsgBox

Doteraz sme pracovali predovšetkým s predvoleným oknom so správou „OK“. Okno so správou OK má iba jednu možnosť: Stlačením „OK“ kód pokračuje. Môžete však určiť aj ďalšie zoskupenia tlačidiel: OK / Zrušiť, Áno / Nie atď.

V takom prípade budete chcieť vykonať rôzne akcie podľa toho, aké tlačidlo stlačíte. Pozrime sa na príklad.

Tu je pole správy, ktoré vygenerujeme:

Toto je celý kód (ďalej ho rozoberieme):

123456789101112 Sub MsgBoxVariable ()Dim odpoveď ako celé čísloanswer = MsgBox („Chcete pokračovať?“, vbQuestion + vbYesNo)Ak odpoveď = vbÁno PotomMsgBox „Áno“InakMsgBox „Nie“Koniec AkKoniec pod

Najprv priradíme výstup schránky správ celočíselnej premennej.

123 Dim odpoveď ako celé čísloanswer = MsgBox („Chcete pokračovať?“, vbQuestion + vbYesNo)

Ďalej použijeme If-Else na určenie, čo robiť podľa toho, aké tlačidlo stlačíte:

12345 Ak odpoveď = vbÁno PotomMsgBox „Áno“InakMsgBox „Nie“Koniec Ak

Funkcia MsgBox vracia celočíselnú hodnotu (medzi 1-7), takže premennú definujeme ako celočíselný typ. Namiesto celočíselného čísla však môžete odkazovať na konštantu (napr. VbOK, vbCancel atď.). V tejto tabuľke nájdete všetky možnosti:

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 predvedieme každú skupinu tlačidiel:

Okno so správou - vbOKOnly

Toto je štandardná schránka správ VBA.

123456 Sub MsgBox_OKOnly ()Dim odpoveď ako celé čísloanswer = MsgBox ("Príklad iba OK", vbOKOnly)Koniec pod

OK Zrušiť pole so správou - vbOKCancel

123456789101112 Sub MsgBox_OKCancel ()Dim odpoveď ako celé čísloanswer = MsgBox ("OK Zrušiť príklad", vbOKCancel)Ak odpoveď = vbOK PotomMsgBox „OK“InakMsgBox „Zrušiť“Koniec AkKoniec pod

Áno Nie Pole so správou - vbYesNo

123456789101112 Sub MsgBox_YesNo ()Dim odpoveď ako celé čísloanswer = MsgBox („Áno Nie Príklad“, vbYesNo)Ak odpoveď = vbÁno PotomMsgBox „Áno“InakMsgBox „Nie“Koniec AkKoniec pod

Áno Nie Zrušiť pole so správou - vbYesNoCancel

1234567891011121314 Sub MsgBox_YesNoCancel ()Dim odpoveď ako celé čísloanswer = MsgBox („Áno Nie Zrušiť príklad“, vbYesNoCancel)Ak odpoveď = vbÁno PotomMsgBox „Áno“ElseIf answer = vbNo PotomMsgBox „Nie“InakMsgBox „Zrušiť“Koniec AkKoniec pod

Prerušiť Skúsiť znova Ignorovať pole so správou - vbAbortRetryIgnore

1234567891011121314 Sub MsgBox_AbortRetryIgnore ()Dim odpoveď ako celé čísloanswer = MsgBox („Abort Retry Ignore Example“, vbAbortRetryIgnore)If answer = vbAbort ThenMsgBox „Prerušiť“ElseIf answer = vbSkúste to znovaMsgBox „Skúsiť znova“InakMsgBox „Ignorovať“Koniec AkKoniec pod

Skúste znova zrušiť pole so správou - vbRetryCancel

123456789101112 Sub MsgBox_RetryCancel ()Dim odpoveď ako celé čísloanswer = MsgBox ("Opakovať príklad zrušenia", vbRetryCancel)If answer = vbSkúste to znovaMsgBox „Skúsiť znova“InakMsgBox „Zrušiť“Koniec AkKoniec pod

Príklady VBA MessageBoxu

Potvrdenie poľa so správou pred spustením makra

Tento kód pred volaním makra zobrazí pole Áno Nie. Ak kliknete na tlačidlo Áno, zavolá sa makro a ak na tlačidlo Nie, makro sa nespustí.

12345678 Sub Msgbox_BeforeRunning ()Dim odpoveď ako celé čísloanswer = MsgBox („Chcete spustiť Macro1?“, vbQuestion + vbYesNo)If answer = vbYes Then Call Macro1Koniec pod

Áno / Nie Pole so správou - Ukončiť pod

Tu s používateľom potvrdíme, či pokračovať v spustení makra. Ak kliknete na Nie, kód ukončí podsekciu, inak bude postup pokračovať.

12345678910 Sub Msgbox_BeforeRunning ()Dim odpoveď ako celé čísloanswer = MsgBox („Chcete pokračovať?“, vbQuestion + vbYesNo)If answer = vbNo Then Exit Sub„Nejaký kódKoniec pod

Pole správ VBA v programe Access VBA

Všetky vyššie uvedené príklady fungujú v programe Access VBA úplne rovnako ako v programe Excel VBA.

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

wave wave wave wave wave