VBA nuppude argumendi paindlikkus muudab Exceli sõnumikastide kohandamise lihtsaks. Saate valida, milliseid nuppe kuvada, määrata, kas ikoon kuvatakse, ja otsustada, milline nupp on vaikenupp (vaikenupul klõpsatakse, kui kasutaja vajutab sisestusklahvi).
Nuppude argumendi jaoks saate kasutada sisseehitatud konstante. Kui soovite, võite konstandi asemel kasutada väärtust (kuid sisseehitatud konstantide kasutamine on palju lihtsam).
Rohkem kui ühe konstandi kasutamiseks argumendina ühendage need lihtsalt + operaatoriga. Näiteks nuppude Jah ja Ei ning hüüumärgiga sõnumikasti kuvamiseks kasutage teise MsgBoxi argumendina järgmist avaldist:
vbYesNo + vbHüüumärk
Või kui eelistate oma koodi vähem arusaadavaks muuta, kasutage väärtust 52 (st 4 + 48).
Järgmises näites kasutatakse konstantide kombinatsiooni, et kuvada teadete kast nupu Jah ja Ei nupuga (vbYesNo) ning küsimärgiikooniga (vbQuestion). Konstant vbDefaultButton2 määrab vaikenupuks teise nupu (Ei) – see tähendab nuppu, mida klõpsatakse, kui kasutaja vajutab sisestusklahvi. Lihtsuse huvides määratakse need konstandid muutujale Config ja seejärel kasutatakse funktsiooni MsgBox teise argumendina Config:
Sub Hanki vastus3()
Dim Config As Long
Dim Ans täisarvuna
Config = vbYesNo + vbQuestion + vbDefaultButton2
Ans = MsgBox ("Kas töödelda kuuaruannet?", Config)
Kui Ans = vbYes, siis RunReport
Lõpeta alam
Vaadake teatekasti, mida Excel kuvab, kui käivitate protseduuri GetAnswer3. Kui kasutaja klõpsab nuppu Jah, käivitab rutiin protseduuri nimega RunReport. Kui kasutaja klõpsab nuppu Ei (või vajutab sisestusklahvi), lõpeb rutiin ilma tegevuseta. Kuna funktsioonis MsgBox jäeti pealkirja argument välja, kasutab Excel vaikepealkirja Microsoft Excel.

Funktsiooni MsgBox nuppude argument määrab, mis sõnumikastis kuvatakse.
Järgmine rutiin annab veel ühe näite funktsiooni MsgBox kasutamisest:
Sub Hanki vastus4()
Hämarda sõnum stringina, pealkiri stringina
Dim Config täisarvuna, Ans täisarvuna
Msg = "Kas soovite kuuaruannet töödelda?"
Msg = Msg & vbNewLine & vbNewLine
Msg = Sõnum & "Kuuaruande töötlemine
Msg = Sõnum & "võtab umbes 15 minutit. See "
Msg = Msg & "loob 30-leheküljelise aruande "
Msg = Sõnum & "kõik praegused müügikontorid"
Msg = sõnum & "kuu".
Pealkiri = "XYZ turundusettevõte"
Config = vbYesNo + vbQuestion
Ans = MsgBox (Sõnum, konfiguratsioon, pealkiri)
Kui Ans = vbYes, siis RunReport
Lõpeta alam
See näide demonstreerib tõhusat viisi pikema sõnumi määramiseks sõnumikastis. Muutujat (Msg) ja konkatenatsioonioperaatorit (&) kasutatakse sõnumi koostamiseks lausete seerias. Konstant vbNewLine lisab reavahetuse märgi, mis alustab uut rida (kasutage seda kaks korda tühja rea lisamiseks). Pealkirja argumenti kasutatakse sõnumikastis erineva pealkirja kuvamiseks. Siin on teatekast, mille Excel kuvab selle protseduuri sooritamisel.

See dialoogiboks, mida kuvab funktsioon MsgBox, kuvab pealkirja, ikooni ja kaks nuppu.
Funktsiooni MsgBox tagastusväärtuseks saate kasutada konstante (nt vbYes ja vbNo). Siin on mõned muud konstandid.
| Püsiv |
Väärtus |
Mida see tähendab |
| vbOK |
1 |
Kasutaja klõpsas OK. |
| vbTühista |
2 |
Kasutaja klõpsas Tühista. |
| vbAbort |
3 |
Kasutaja klõpsas Katkesta. |
| vb Proovi uuesti |
4 |
Kasutaja klõpsas nupul Proovi uuesti. |
| vbIgnoreeri |
5 |
Kasutaja klõpsas Eirata. |
| vbJah |
6 |
Kasutaja klõpsas Jah. |
| vbNo |
7 |
Kasutaja klõpsas Ei. |
Ja see on peaaegu kõik, mida peate MsgBoxi funktsiooni kohta teadma. Kasutage sõnumikaste siiski ettevaatlikult. Tavaliselt pole põhjust kuvada sõnumikaste, millel pole eesmärki. Näiteks kipuvad inimesed ärrituma, kui näevad iga päev sõnumikasti, kus on kirjas Tere hommikust. Täname eelarveprognoosi töövihiku laadimise eest.