Funkciu VBA MsgBox pravdepodobne poznáte. Funkcia MsgBox, ktorá akceptuje argumenty uvedené nižšie, je užitočná na zobrazenie informácií a získanie jednoduchého vstupu používateľa. Je schopný získať vstup od používateľa, pretože je to funkcia. Funkcia, ako pravdepodobne viete, vracia hodnotu. V prípade funkcie MsgBox používa dialógové okno na získanie hodnoty, ktorú vracia. Pokračujte v čítaní, aby ste videli, ako presne to funguje.
Argumentovať |
Čo to ovplyvňuje |
Prompt |
V okne správy sa zobrazí text Excel |
Tlačidlá |
Číslo, ktoré určuje, ktoré tlačidlá (spolu s akou ikonou) sa
zobrazia v poli správy (voliteľné) |
Názov |
Text, ktorý sa zobrazí v záhlaví okna so správou
(voliteľné) |
Tu je zjednodušená verzia syntaxe funkcie MsgBox:
MsgBox(výzva[, tlačidlá][, názov])
Zobrazenie jednoduchého poľa správ
Funkciu MsgBox môžete použiť dvoma spôsobmi:
-
Jednoduché zobrazenie správy používateľovi: V tomto prípade vás nezaujíma výsledok vrátený funkciou.
-
Ak chcete získať odpoveď od používateľa: V tomto prípade vám záleží na výsledku vrátenom funkciou. Výsledok závisí od tlačidla, na ktoré používateľ klikne.
Ak používate funkciu MsgBox ako takú, nevkladajte okolo argumentov zátvorky. Nasledujúci príklad jednoducho zobrazí správu a nevráti výsledok. Keď sa zobrazí správa, kód sa zastaví, kým používateľ neklikne na tlačidlo OK.
Sub MsgBoxDemo()
MsgBox „Kliknutím na OK spustíte tlač.“
Listy („Výsledky“). Vytlačiť
End Sub
Pozrite sa nižšie a zistite, ako toto okno so správou vyzerá. V tomto prípade sa tlač spustí, keď používateľ klikne na tlačidlo OK. Všimli ste si, že tlač nie je možné zrušiť? Pokračujte v čítaní, aby ste zistili, ako to opraviť.
Jednoduchá schránka správ.
Získanie odpovede zo schránky správ
Ak zobrazíte okno so správou, ktoré obsahuje viac než len tlačidlo OK, pravdepodobne budete chcieť vedieť, na ktoré tlačidlo používateľ klikne. Máš šťastie. Funkcia MsgBox môže vrátiť hodnotu, ktorá predstavuje, na ktoré tlačidlo sa kliklo. Výsledok funkcie MsgBox môžete priradiť premennej.
V nasledujúcom kóde sú použité niektoré vstavané konštanty, ktoré uľahčujú prácu s hodnotami vrátenými MsgBox:
Sub GetAnswer()
Dim Ans As Long
Ans = MsgBox(“Začať tlač?”, vbYesNo)
Vyberte položku Prípad Ans
Prípad vbYes
ActiveSheet.PrintOut
Prípad vb č
MsgBox „Tlač zrušená“
Koniec Vyberte
End Sub
Neustále |
Hodnota |
Čo to robí |
vbOKLen |
0 |
Zobrazí iba tlačidlo OK. |
vbOKZrušiť |
1 |
Zobrazuje tlačidlá OK a Zrušiť. |
vbAbortRetryIgnore |
2 |
Zobrazuje tlačidlá Prerušiť, Opakovať a Ignorovať. |
vbYesNoCancel |
3 |
Zobrazuje tlačidlá Áno, Nie a Zrušiť. |
vbYesNo |
4 |
Zobrazuje tlačidlá Áno a Nie. |
vbRetryCancel |
5 |
Zobrazuje tlačidlá Opakovať a Zrušiť. |
vbCritical |
16 |
Zobrazí ikonu kritickej správy. |
vbQuestion |
32 |
Zobrazí ikonu výstražného dotazu. |
vbExclamation |
48 |
Zobrazí ikonu výstražného hlásenia. |
vbInformácie |
64 |
Zobrazí ikonu informačnej správy. |
vbDefaultButton1 |
0 |
Prvé tlačidlo je predvolené. |
vbDefaultButton2 |
256 |
Druhé tlačidlo je predvolené. |
vbDefaultButton3 |
512 |
Tretie tlačidlo je predvolené. |
vbDefaultButton4 |
768 |
Štvrté tlačidlo je predvolené. |
Pozrite sa, ako to vyzerá. Keď vykonáte tento postup, premennej Ans sa priradí hodnota buď vbYes alebo vbNo, v závislosti od toho, na ktoré tlačidlo používateľ klikne. Príkaz Select Case používa hodnotu Ans na určenie akcie, ktorú má kód vykonať.
Jednoduchá schránka správ s dvoma tlačidlami.
Výsledok funkcie MsgBox môžete použiť aj bez použitia premennej, ako ukazuje nasledujúci príklad:
Sub GetAnswer2()
Ak MsgBox(“Začať tlač?”, vbYesNo) = vbYes Then
' ...[kód, ak sa klikne na Áno]...
Inak
' ...[kód, ak nekliknete na Áno]...
Koniec Ak
End Sub