Excel VBA MsgBox (Üzenetdoboz) - Minden, amit tudnia kell!

Az Excel VBA -ban az MsgBox funkcióval megjelenítheti az üzenetdobozt (az alábbiak szerint):

Az MsgBox nem más, mint egy párbeszédpanel, amellyel tájékoztathatja a felhasználókat egyéni üzenet megjelenítésével vagy néhány alapvető bemenet beszerzésével (például Igen/Nem vagy OK/Mégse).

Amíg az MsgBox párbeszédpanel megjelenik, a VBA -kód leáll. A fennmaradó VBA -kód futtatásához az MsgBox bármelyik gombjára kell kattintania.

Megjegyzés: Ebben az oktatóanyagban az üzenetmező és az MsgBox szavakat felcserélve fogom használni. Amikor Excel VBA -val dolgozik, mindig használnia kell MsgBox.

A VBA MsgBox anatómiája az Excelben

Az üzenetdoboz a következő részeket tartalmazza:

  1. Cím: Ez általában az üzenetdoboz megjelenítésére szolgál. Ha nem ad meg semmit, megjeleníti az alkalmazás nevét - ami ebben az esetben a Microsoft Excel.
  2. Gyors: Ezt az üzenetet szeretné megjeleníteni. Ezzel a mezővel írhat pár sort, vagy akár táblázatokat/adatokat jeleníthet meg itt.
  3. Gomb (ok): Bár az OK az alapértelmezett gomb, testreszabhatja, hogy megjelenjenek olyan gombok, mint az Igen/Nem, Igen/Nem/Mégse, Újrapróbálkozás/Mellőzés stb.
  4. Bezárás ikon: Bezárhatja az üzenetmezőt a bezárás ikonra kattintva.

A VBA MsgBox függvény szintaxisa

Amint említettem, az MsgBox egy függvény, és a többi VBA függvényhez hasonló szintaxissal rendelkezik.

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

  • gyors - Ez kötelező érv. Megjeleníti az üzenetet, amelyet az MsgBox -ban lát. Példánkban a „This is a sample MsgBox” szöveg a „prompt”. Legfeljebb 1024 karaktert használhat a parancssorban, és megjelenítheti a változók értékeit is. Abban az esetben, ha több sorból álló értesítést szeretne megjeleníteni, akkor ezt is megteheti (erről bővebben ebben az oktatóanyagban).
  • [gombok] - Ez határozza meg, hogy milyen gombok és ikonok jelennek meg az MsgBox -ban. Például, ha a vbOkOnly -t használom, akkor csak az OK gombot fogja megjeleníteni, ha pedig a vbOKCancel -t használom, akkor az OK és a Mégse gomb is megjelenik. Ebben az oktatóanyagban a különböző gombokra fogok kitérni később.
  • [cím] - Itt megadhatja, hogy milyen feliratot szeretne az üzenet párbeszédpanelen. Ez megjelenik az MsgBox címsorában. Ha nem ad meg semmit, akkor megjelenik az alkalmazás neve.
  • [helpfile] - Megadhat egy súgófájlt, amely akkor érhető el, ha a felhasználó a Súgó gombra kattint. A súgó gomb csak akkor jelenik meg, ha a gomb kódját használja. Ha súgófájlt használ, akkor meg kell adnia a környezeti érvet is.
  • [kontextus] - Ez egy numerikus kifejezés, amely a megfelelő Súgó témakörhöz rendelt Súgó kontextusszám.

Ha még nem ismeri az Msgbox fogalmát, nyugodtan hagyja figyelmen kívül a [helpfile] és [context] érveket. Ritkán láttam ezeket használni.

Megjegyzés: A szögletes zárójelben lévő összes argumentum nem kötelező. Csak a „gyors” érv kötelező.

Excel VBA MsgBox gombállandók (példák)

Ebben a részben a különböző típusú gombokat ismertetem, amelyeket a VBA MsgBox segítségével használhat.

Mielőtt megmutatnám a hozzá tartozó VBA kódot és az MsgBox kinézetét, itt van egy táblázat, amely felsorolja az összes használható gombállandó értékét.

Gomb Állandó Leírás
vbOKKizárólag Csak az OK gombot mutatja
vbOKCancel Megjeleníti az OK és a Mégse gombot
vbAbortRetryIgnore Megjeleníti az Abort, Retry és Ignore gombokat
vbIgenNem Az Igen és a Nem gombokat mutatja
vbIgenNemond Az Igen, Nem és a Mégse gombokat mutatja
vbRetryCancel Megjeleníti az Újra és a Mégse gombot
vbMsgBoxHelpButton Megjeleníti a Súgó gombot. Ahhoz, hogy ez működjön, használnia kell az MsgBox függvény súgóját és kontextus argumentumait
vbDefaultButton1 Az első gombot alapértelmezetté teszi. A szám megváltoztatásával megváltoztathatja az alapértelmezett gombot. Például a vbDefaultButton2 a második gombot teszi alapértelmezetté

Megjegyzés: Miközben a különböző gombok létrehozásának példáit tanulmányozza, elgondolkodhat azon, mi értelme van ezeknek a gomboknak, ha nincs hatással a kódra.

Igen! A kiválasztás alapján kódolhatja, hogy mit szeretne a kód. Például, ha az OK lehetőséget választja, akkor a kódnak folytatódnia kell, és ha a Mégse gombra kattint, akkor a kódnak le kell állnia. Ez történhet változók használatával, és az Üzenetdoboz értékének hozzárendelésével egy változóhoz. Ezt az oktatóanyag későbbi szakaszaiban tárgyaljuk.

Most nézzünk néhány példát arra, hogyan jeleníthetők meg a különböző gombok az MsgBoxban, és hogyan néz ki.

MsgBox gombok - vbOKOnly (alapértelmezett)

Ha csak a parancssort használja, és nem ad meg egyetlen érvet sem, az alapértelmezett üzenetmező jelenik meg az alábbiak szerint:

Az alábbiakban látható a kód, amely ezt az üzenetmezőt adja:

Sub DefaultMsgBox () MsgBox "Ez egy minta doboz" End Sub

Ne feledje, hogy a szöveges karakterláncnak idézőjelben kell lennie.

A vbOKOnly gomb konstansát is használhatja, de még ha nem is ad meg semmit, akkor alapértelmezettnek tekinti.

MsgBox gombok - OK és Mégse

Ha csak az OK és a Mégse gombot szeretné megjeleníteni, akkor a vbOKCancel konstansot kell használnia.

Sub MsgBoxOKCancel () MsgBox "Folytatni akarod?", VbOKCancel End Sub

MsgBox gombok - Megszakítás, újrapróbálkozás és figyelmen kívül hagyás

A „vbAbortRetryIgnore” konstans segítségével megjelenítheti az Abort, Retry és a Ignore gombokat.

Sub MsgBoxAbortRetryIgnore () MsgBox "Mit akarsz csinálni?", VbAbortRetryIgnore End Sub

MsgBox gombok - Igen és nem

A „vbYesNo” állandó segítségével megjelenítheti az Igen és a Nem gombokat.

Sub MsgBoxYesNo () MsgBox "Hagyjuk abba?", VbYesNo End Sub

MsgBox gombok - Igen, Nem és Mégse

A „vbYesNoCancel” állandó segítségével megjelenítheti az Igen, a Nem és a Mégse gombokat.

Sub MsgBoxYesNoCancel () MsgBox "Ha abba kell hagynunk?", VbYesNoCancel End Sub

MsgBox gombok - Próbálja újra és törölje

A „vbRetryCancel” állandó segítségével megjelenítheti az Újra és a Mégse gombokat.

Sub MsgBoxRetryCancel () MsgBox "Mit akarsz tenni ezután?", VbRetryCancel End Sub

MsgBox gombok - Súgó gomb

A „vbMsgBoxHelpButton” konstans segítségével megjelenítheti a súgó gombot. Használhatja más gombállandókkal.

Sub MsgBoxRetryHelp () MsgBox "Mit akarsz most csinálni?", VbRetryCancel + vbMsgBoxHelpButton End Sub

Ne feledje, hogy ebben a kódban két különböző gombállandót kombináltunk (vbRetryCancel + vbMsgBoxHelpButton). Az első részben az Újra és a Mégse gomb, a másodikban a Súgó gomb látható.

MsgBox gombok - Alapértelmezett gomb beállítása

A „vbDefaultButton1” konstans segítségével beállíthatja az első gombot alapértelmezettként. Ez azt jelenti, hogy a gomb már kiválasztva van, és ha megnyomja az enter billentyűt, akkor végrehajtja azt.

Az alábbiakban látható a kód, amely a második gombot (a „Nem” gombot) alapértelmezettként állítja be.

Sub MsgBoxOKCancel () MsgBox "Mit szeretne tenni ezután?", VbIgenNemondás + vbDefaultButton2 End Sub

A legtöbb esetben a bal oldali gomb az alapértelmezett gomb. Más gombokat is választhat a vbDefaultButton2, vbDefaultButton3 és vbDefaultButton4 használatával.

Excel VBA MsgBox Ikonállandók (példák)

A gombokon kívül testreszabhatja az MsgBox párbeszédpanelen megjelenő ikonokat. Például rendelkezhet egy piros kritikus vagy egy kék információs ikonnal.

Az alábbiakban egy táblázat található, amely felsorolja a megfelelő ikont megjelenítő kódot.

Állandó ikon Leírás
vbKritikus Megjeleníti a kritikus üzenet ikont
vbKérdés A kérdés ikont mutatja
vbKiáltás A figyelmeztető üzenet ikonját mutatja
vbInformation Az információs ikont mutatja

MsgBox ikonok - kritikus

Ha kritikus ikont szeretne megjeleníteni az MsgBox -ban, használja a vbCritical konstansot. Ezt más gombállandókkal együtt is használhatja (a + jel beírásával a kódok közé).

Például az alábbiakban egy kód látható, amely az alapértelmezett OK gombot jeleníti meg egy kritikus ikonnal.

Sub MsgBoxCriticalIcon () MsgBox "Ez egy minta doboz", vbCritical End Sub

Ha az Igen és a Nem gombokkal szeretné megjeleníteni a kritikus ikont, használja a következő kódot:

Sub MsgBoxCriticalIcon () MsgBox "Ez egy minta doboz", vbYesNo + vbCritical End Sub

MsgBox ikonok - Kérdés

Ha kritikus ikont szeretne megjeleníteni az MsgBox -ban, használja a vbQuestion konstansot.

Sub MsgBoxQuestionIcon () MsgBox "Ez egy minta doboz", vbYesNo + vbQuestion End Sub

MsgBox ikonok - Felkiáltás

Ha felkiáltó ikont szeretne megjeleníteni az MsgBox -ban, használja a vbExclamation konstansot.

Sub MsgBoxExclamationIcon () MsgBox "Ez egy minta doboz", vbIgenNem + vbExclamation End Sub

MsgBox ikonok - Információ

Ha információs ikont szeretne megjeleníteni az MsgBox -ban, használja a vbInformation konstansot.

Sub MsgBoxInformationIcon () MsgBox "Ez egy minta doboz", vbYesNo + vbInformation End Sub

A cím és a kérés testreszabása az MsgBoxban

Az MsgBox használatakor testreszabhatja a címet és az üzeneteket.

Eddig a látott példa a Microsoft Excel -t használta címként. Ha nem adja meg a cím argumentumot, az MsgBox automatikusan az alkalmazás címét használja (amely ebben az esetben a Microsoft Excel volt).

A címet testreszabhatja úgy, hogy megadja azt az alábbi kódban:

Sub MsgBoxInformationIcon () MsgBox "Folytatni akarod?", VbYesNo + vbQuestion, "1. lépés / 3" Befejezés

Hasonlóképpen testreszabhatja a prompt üzenetet.

Sortöréseket is hozzáadhat a prompt üzenethez.

Az alábbi kódban sortörést adtam hozzá a „vbNewLine” használatával.

Sub MsgBoxInformationIcon () MsgBox "Folytatja?" & vbNewLine & "Kattintson az Igen gombra a folytatáshoz", vbYesNo + vbQuestion, "1 /3" lépés

Használhatja a kocsi visszatérési karakterét - Chr (13) - vagy a sorbevitelt - Chr (10) is, hogy új sort illesszen be a prompt üzenetbe.

Ne feledje, hogy csak a prompt üzenethez adhat új sort, a címet nem.

MsgBox érték hozzárendelése egy változóhoz

Eddig láttuk azokat a példákat, ahol üzenetdobozokat hoztunk létre, és testreszabtuk a gombokat, ikonokat, címet és promptot.

A gomb megnyomása azonban semmit sem hozott.

Az Excel MsgBox funkciójával eldöntheti, hogy mit szeretne tenni, ha a felhasználó rákattint egy adott gombra. Ez pedig lehetséges, mivel minden gombhoz tartozik egy érték.

Tehát ha az Igen gombra kattintom, az MsgBox függvény egy értéket ad vissza (6 vagy a konstans vbYes), amelyet felhasználhatok a kódomban. Hasonlóképpen, ha a felhasználó a Nem gombot választja, akkor más értéket ad vissza ((7 vagy az állandó vbNo)), amelyet a kódban használhatok.

Az alábbiakban egy táblázat található, amely a pontos értékeket és az MsgBox függvény által visszaadott konstansot mutatja. Ezeket nem kell megjegyeznie, csak tudnia kell, és használhatja a könnyebben használható konstansokat.

Gomb kattintva Á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 nézzük meg, hogyan szabályozhatjuk a VBA makrókódot annak alapján, hogy a felhasználó melyik gombra kattint.

Ha az alábbi kódban a felhasználó az Igen gombra kattint, akkor az „Ön az Igen gombra kattintott” üzenet jelenik meg, és ha a felhasználó a Nem gombra kattint, akkor a „Nem gombra kattintott” felirat jelenik meg.

Sub MsgBoxInformationIcon () Result = MsgBox ("Folytatni akarod?", VbYesNo + vbQuestion) Ha Result = vbYes Akkor MsgBox "Igen gombra kattintott" Más: MsgBox "Nem"

A fenti kódban az MsgBox függvény értékét rendeltem az Eredmény változóhoz. Ha az Igen gombra kattint, az Eredmény változó megkapja a vbYes konstansot (vagy a 6 -os számot), és ha a Nem gombra kattint, az Eredmény változó a vbNo konstansot (vagy a 7 -es számot).

Ezután egy If Then Else konstrukcióval ellenőriztem, hogy az Result változó tartalmazza -e a vbYes értéket. Ha igen, akkor az „Igen gombra kattintott” üzenet jelenik meg, ellenkező esetben a „Nem gombra kattintott” felirat jelenik meg.

Ugyanezt a koncepciót használhatja kód futtatására is, ha a felhasználó az Igen gombra kattint, és kilép az aloldalról, amikor a Nem gombra kattint.

Megjegyzés: Amikor az MsgBox kimenetet hozzárendeli egy változóhoz, zárójelbe kell helyeznie az MsgBox függvény argumentumait. Például a sorban Eredmény = MsgBox („Folytatni akarod?”, VbYesNo + vbQuestion), láthatja, hogy az argumentumok zárójelben vannak.

Ha tovább szeretne mélyedni az Üzenetdoboz funkcióban, itt található a hivatalos dokumentum.

A következő Excel VBA oktatóanyagok is tetszhetnek:

  • Excel VBA osztott funkció.
  • Excel VBA InStr függvény.
  • Munka cellákkal és tartományokkal az Excel VBA -ban.
  • Munkalapok használata VBA -ban.
  • Munkafüzetek használata VBA -ban.
  • A hurkok használata az Excel VBA -ban.
  • Az Excel VBA adattípusainak (változók és állandók) megértése
  • Személyes makró munkafüzet létrehozása és használata Excelben.
  • Hasznos Excel makrókód példák.
  • A következő hurok használata Excel VBA -ban.
  • Excel VBA események - Egyszerű (és teljes) útmutató.
  • Makró futtatása Excelben-Teljes útmutató lépésről lépésre.
  • Excel-bővítmény létrehozása és használata.

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

wave wave wave wave wave