Igen Nem Üzenetdoboz (Msgbox) - Példák a VBA kódokra

Ez az oktatóanyag bemutatja, hogyan kell használni a VBA MsgBox funkciót az üzenetdobozok megjelenítéséhez a felhasználók számára (beleértve az IgenNem üzenetmezőt). Ön is érdekelheti az InputBox -okról szóló cikkünket.

VBA MsgBox funkció

A VBA -ban egyszerű az egyszerű MsgBox megjelenítése:

1 MsgBox "Ez egy üzenetdoboz"

Mindazonáltal sokkal többet tehet, mint egy egyszerű OK üzenetmező megjelenítése. Nézzünk gyorsan egy bonyolult példát, mielőtt belemerülünk a konkrétumokba…

VBA IgenNem Üzenetdoboz

Az alábbiakban létrehozunk egy üzenetdobozt a következőkkel:

  • Cím „Üzenetdoboz címe” és „Szöveg”
  • Kérdőjel ikon
  • Igen / Nem lehetőségek az egyszerű „OK” helyett
  • Alapértelmezett gomb = 'Nem'
123 Halvány válasz Egész számkéntanswer = MsgBox ("Szöveg", vbQuestion + vbYesNo + vbDefaultButton2, "Message Box Title")

Az üzenetdoboz visszaadja a vbYes vagy a vbNo értéket a felhasználó választásától függően. Ezután különböző műveleteket hajthat végre a választás alapján:

12345 Ha a válasz = vbIgen AkkorMsgBox "Igen"MásMsgBox "Nem"Vége Ha

A következő részben megmutatjuk az összes lehetőséget, amely az üzenetdobozok létrehozásakor rendelkezésre áll. Ezután bemutatjuk az MsgBox függvény szintaxisát, és végül áttekintünk más példákat az üzenettáblákra.

VBA Üzenetdoboz opciók

Vessen egy pillantást az alábbi képre. Itt látni fogja (majdnem) az összes lehetőséget, amelyet az üzenetdobozok létrehozásakor kaphat. Vegye figyelembe az ikonokat és a különböző gombokat.

Ez egy képernyőkép a „MessageBox Builder” -ről a prémium VBA bővítményünkből: AutoMacro. A MessageBox Builder segítségével gyorsan megtervezheti a kívánt üzenetládát, és beillesztheti a kódot a kódmodulba. Ezenkívül sok más kódkészítőt, kiterjedt VBA kódkönyvtárat és kódolóeszközöket is tartalmaz. Ez minden VBA fejlesztő számára kötelező.

Az MsgBox függvény szintaxisa

MsgBox (prompt [, gombok] [, cím] [, súgófájl, kontextus])

gyors (kötelező) - Ez az elsődleges üzenetdoboz szövege.

gombok - Válassza ki a megjelenítendő gombokat. Ha elhagyja, „OK”. Itt is megadhatja, hogy melyik ikont jelenítse meg, és az alapértelmezett gombot.

cím - A cím az üzenetdoboz tetején. Ha elhagyja, megjelenik az aktuális alkalmazás neve (pl. Microsoft Excel).

helpfile - Adja meg a súgófájlt, amely akkor érhető el, ha a felhasználó a „Súgó” gombra kattint. Ha megadta, akkor hozzá kell adnia a kontextust is (lent)

kontextus - A megfelelő Súgó témakörhöz rendelt Súgó kontextusszámát reprezentáló numerikus kifejezés.

Valószínűleg figyelmen kívül hagyhatja a súgófájlt és a környezeti érveket. Soha nem láttam őket használni.

Testreszabhatja az üzenetdoboz címét és a promptot

Az MsgBox funkció lehetővé teszi a cím és a gyorsüzenetek testreszabását az alábbiak szerint:

1 Msgbox "Prompt", "Title"

Egy másik példa:

123 Sub MsgBoxPromptTitle ()MsgBox "1. lépés Végezze el. Kattintson az OK gombra a 2. lépés futtatásához." ,, "1. lépés az 5 -ből"End Sub

Fontos! Ne felejtse el idézetekkel körülvenni a szöveget.

MessageBox LineBreaks

A „vbNewLine” segítségével sortöréseket is hozzáadhat az üzenetdoboz -értesítésekhez.

123 Sub MsgBoxPromptTitle_NewLine ()MsgBox "1. lépés Vége." & vbNewLine & "Kattintson az OK gombra a 2. lépés futtatásához", "1. lépés az 5 -ből"End Sub

Figyeljük meg, hogy a & szimbólumot használjuk a szöveg összeillesztéséhez. A szöveg és a szöveg használatával történő használatról és a sortörések beillesztésének egyéb lehetőségeiről bővebben a szöveg összekapcsolásáról szóló cikkünkben olvashat.

MsgBox ikonok

A VBA lehetőséget ad arra, hogy a négy előre elkészített ikon egyikét hozzáadja az üzenetmezőkhöz:

Állandó ikon Ikon
vbInformation
vbKritikus
vbKérdés
vbKiáltás

Az ikonállandót a gomb argumentumon belül kell elhelyezni:

123 Sub MsgBoxQuestionIcon ()MsgBox "Kérdéses példa", vbQuestionEnd Sub

Ez létrehozza az alapértelmezett „OK” üzenetmezőt a Kérdés ikonnal:

Figyelje meg, hogy gépelés közben a VBA -szerkesztő megjeleníti a rendelkezésre álló lehetőségeket:

Ez azért hasznos, mert nem kell emlékeznie az ikonok vagy gombok pontos szintaxisára vagy nevére.

Most bemutatjuk az egyes üzenetdoboz ikonokat:

MsgBox ikonok - Információ

123 Sub MsgBoxInformationIcon ()MsgBox "Információs példa", vbInformationEnd Sub

MsgBox ikonok - kritikus

123 Sub MsgBoxCriticalIcon ()MsgBox "Kritikus példa", vbCriticalEnd Sub

MsgBox ikonok - Kérdés

123 Sub MsgBoxQuestionIcon ()MsgBox "Kérdéses példa", vbQuestionEnd Sub

MsgBox ikonok - Felkiáltás

123 Sub MsgBoxExclamationIcon ()MsgBox "Felkiáltási példa", vbExclamationEnd Sub

Az alábbiakban különböző gombok elrendezésű üzenetdobozok létrehozásáról fogunk beszélni. Ha másik üzenettípus -típust választ, akkor a gombok után hozzá kell fűznie az ikontípust a „+” jel használatával:

123 Sub MsgBoxQuestionIcon ()MsgBox "Folytatni szeretné?", VbOKCancel + vbQuestionEnd Sub

MsgBox változók

Eddig elsősorban az alapértelmezett „OK” üzenetmezővel dolgoztunk. Az OK üzenetmezőnek csak egy lehetősége van: Az „OK” megnyomása lehetővé teszi a kód folytatását. Megadhat azonban más gombcsoportokat is: OK / Mégse, Igen / Nem, stb.

Ebben az esetben a gomb megnyomása alapján különböző műveleteket szeretne végrehajtani. Nézzünk egy példát.

Íme az üzenetdoboz, amelyet létrehozunk:

Ez a teljes kód (legközelebb lebontjuk):

123456789101112 Sub MsgBoxVariable ()Halvány válasz Egész számkéntanswer = MsgBox ("Folytatni akarod?", vbQuestion + vbYesNo)Ha a válasz = vbIgen AkkorMsgBox "Igen"MásMsgBox "Nem"Vége HaEnd Sub

Először hozzárendeljük az üzenetdoboz kimenetét egy egész változóhoz.

123 Halvány válasz Egész számkéntanswer = MsgBox ("Folytatni akarod?", vbQuestion + vbYesNo)

Ezután az If-Else segítségével határozzuk meg, hogy mit kell tennünk a gomb megnyomása alapján:

12345 Ha a válasz = vbIgen AkkorMsgBox "Igen"MásMsgBox "Nem"Vége Ha

Az MsgBox függvény egész értéket ad vissza (1-7), így a változót egész típusként definiáljuk. Ahelyett, hogy az egész számra hivatkozna, hivatkozhat egy konstansra (pl. VbOK, vbCancel stb.). Nézze meg ezt a táblázatot az összes lehetőség megtekintéséhez:

Gomb Állandó Érték
rendben vbOK 1
Megszünteti vbCancel 2
Elvetél vbAbort 3
Próbálja újra vbPróbálkozás 4
Figyelmen kívül hagyni vbIgnore 5
Igen vbIgen 6
Nem vbNem 7

Most bemutatjuk az egyes gombcsoportokat:

OK Üzenetdoboz - vbOKOnly

Ez a szabványos VBA üzenetlista.

123456 Sub MsgBox_OKOnly ()Halvány válasz Egész számkéntanswer = MsgBox ("OKOnly példa", vbOKOnly)End Sub

OK Üzenetdoboz törlése - vbOKCancel

123456789101112 Sub MsgBox_OKCancel ()Halvány válasz Egész számkéntanswer = MsgBox ("OK Mégse Példa", vbOKCancel)Ha a válasz = vbOK AkkorMsgBox "OK"MásMsgBox "Mégse"Vége HaEnd Sub

Igen Nem Üzenetdoboz - vbIgenNem

123456789101112 Sub MsgBox_YesNo ()Halvány válasz Egész számkéntanswer = MsgBox ("Igen Nem példa", vbYesNo)Ha a válasz = vbIgen AkkorMsgBox "Igen"MásMsgBox "Nem"Vége HaEnd Sub

Igen Nem Mégse Üzenetdoboz - vbYesNoCancel

1234567891011121314 Sub MsgBox_YesNoCancel ()Halvány válasz Egész számkéntanswer = MsgBox ("Igen Nem Mégse Példa", vbYesNoCancel)Ha a válasz = vbIgen AkkorMsgBox "Igen"KülönbenHa válasz = vbNem AkkorMsgBox "Nem"MásMsgBox "Mégse"Vége HaEnd Sub

Újrapróbálkozás megszakítása Üzenetdoboz figyelmen kívül hagyása - vbAbortRetryIgnore

1234567891011121314 Sub MsgBox_AbortRetryIgnore ()Halvány válasz Egész számkéntanswer = MsgBox ("Abort Retry Ignore példa", vbAbortRetryIgnore)Ha a válasz = vbAbort AkkorMsgBox "Megszakítás"KülönbenHa válasz = vbPróbáld meg akkorMsgBox "Újra"MásMsgBox "figyelmen kívül hagyás"Vége HaEnd Sub

Újrapróbálkozás Mégse Üzenetdoboz - vbRetryCancel

123456789101112 Sub MsgBox_RetryCancel ()Halvány válasz Egész számkéntanswer = MsgBox ("Példa újrapróbálkozásra", vbRetryCancel)Ha a válasz = vbRetry thenMsgBox "Újra"MásMsgBox "Mégse"Vége HaEnd Sub

Példák a VBA MessageBox -ra

Üzenetdoboz megerősítése a makró futtatása előtt

Ez a kód egy Igen Nem üzenet mezőt jelenít meg a makró hívása előtt. Ha az Igen gombra kattint, a makró meghívásra kerül, ha a Nem gombra kattint, a makró nem fut.

12345678 Sub Msgbox_BeforeRunning ()Halvány válasz Egész számkéntanswer = MsgBox ("Futtatni szeretné a Macro1 -et?", vbQuestion + vbYesNo)Ha a válasz = vbIgen, akkor hívja a makrót1End Sub

Igen / Nem Üzenetdoboz - Kilépés al

Itt megerősítjük a felhasználóval, hogy folytatja -e a makró futtatását. Ha a Nem gombra kattint, a kód kilép az aloldalból, ellenkező esetben az eljárás folytatódik.

12345678910 Sub Msgbox_BeforeRunning ()Halvány válasz Egész számkéntanswer = MsgBox ("Folytatni akarod?", vbQuestion + vbYesNo)Ha a válasz = vbNe, akkor lépjen ki a Sub menüből- Valami kódEnd Sub

VBA Üzenetdoboz az Access VBA -ban

A fenti példák mindegyike pontosan ugyanúgy működik az Access VBA -ban, mint az Excel VBA -ban.

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave