See õpetus hõlmab seda, kuidas kasutada funktsiooni VBA MsgBox kasutajatele sõnumikastide kuvamiseks (sh sõnumikast YesNo). Samuti võite olla huvitatud meie artiklist sisendkastide kohta.
Funktsioon VBA MsgBox
VBA -s on lihtne kuvada lihtne MsgBox:
1 | MsgBox "See on sõnumikast" |
Siiski saate teha palju enamat kui kuvada lihtne OK sõnumikast. Vaatame kiiresti keerulist näidet, enne kui sukeldume konkreetsesse …
VBA Jah Ei sõnumikast
Allpool loome sõnumikast koos:
- Pealkiri „Sõnumikasti pealkiri” ja viip „Tekst”
- Küsimärgi ikoon
- Jah / ei valikud lihtsa “OK” asemel
- Vaikenupp = 'Ei'
123 | Hämar vastus täisarvunaanswer = MsgBox ("Tekst", vbQuestion + vbYesNo + vbDefaultButton2, "Sõnumikasti pealkiri") |
Sõnumikasti tagastab vbJah või vbEi olenevalt kasutaja valikust. Seejärel saate valiku põhjal teha erinevaid toiminguid:
12345 | Kui vastus = vbJah siisMsgBox "Jah"MuiduMsgBox "Ei"Lõpp Kui |
Järgmises jaotises näitame teile kõiki sõnumikastide loomisel saadaolevaid valikuid. Seejärel tutvustame teile funktsiooni MsgBox süntaksit ja vaatame lõpuks üle muud sõnumikasti näited.
VBA sõnumikasti valikud
Vaadake allolevat pilti. Siin näete (peaaegu) kõiki sõnumikastide loomisel saadaolevaid valikuid. Pange tähele ikoone ja erinevaid nuppe.
See on ekraanipilt "MessageBox Builderist" meie Premium VBA lisandmoodulist: AutoMacro. MessageBox Builder võimaldab teil kiiresti kujundada soovitud postkasti ja sisestada koodi oma koodimoodulisse. See sisaldab ka palju teisi koodiehitajaid, ulatuslikku VBA kooditeeki ja valikut kodeerimisvahendeid. See peab olema iga VBA arendaja jaoks.
Funktsiooni MsgBox süntaks
MsgBox (viip [, nupud] [, pealkiri] [, abifail, kontekst])
viip (kohustuslik) - See on esmane sõnumikasti tekst.
nuppe - Valige kuvatavad nupud. Kui see välja jätta, siis „OK”. Siin saate määrata ka kuvatava ikooni ja vaikenupu.
tiitel - Pealkiri sõnumikasti ülaosas. Kui see välja jäetakse, kuvatakse praeguse rakenduse nimi (nt Microsoft Excel).
abifail - Määrake abifail, millele pääseb juurde, kui kasutaja klõpsab nupul „Abi”. Kui see on määratud, peate lisama ka konteksti (allpool)
kontekst - Numbriline avaldis, mis tähistab spikri kontekstinumbrit, mis on määratud asjakohasele spikriteemale.
Tõenäoliselt võite ignoreerida abifaili ja konteksti argumente. Ma pole neid kunagi kasutamas näinud.
Kohanda sõnumikasti pealkirja ja viip
Funktsioon MsgBox võimaldab teil kohandada pealkirja ja kiiret sõnumit järgmiselt:
1 | Msgbox "Viip", "Pealkiri" |
Veel üks näide:
123 | Sub MsgBoxPromptTitle ()MsgBox "1. samm on lõpule viidud. 2. sammu käivitamiseks klõpsake nuppu OK.", "1. samm viiest"End Sub |
Tähtis! Peate meeles pidama, et ümbritsete oma teksti tsitaatidega.
MessageBox LineBreaks
Samuti saate sõnumikasti viipadele lisada reavaheid vbNewLine abil.
123 | Sub MsgBoxPromptTitle_NewLine ()MsgBox "1. samm on lõpule viidud." & vbNewLine & "2. sammu käivitamiseks klõpsake nuppu OK", "1. samm viiest"End Sub |
Pange tähele, et me kasutame teksti ühendamiseks sümbolit &. Lisateavet teksti kasutamise ja koos kasutamise ning muude reavahete lisamise võimaluste kohta leiate meie teksti ühendamise artiklist.
MsgBoxi ikoonid
VBA annab teile võimaluse lisada oma sõnumikastidesse üks neljast eelseadistatud ikoonist.
Ikoon Pidev | Ikoon |
---|---|
vbInformatsioon | ![]() |
vbKriitiline | ![]() |
vbKüsimus | ![]() |
vbHüüde | ![]() |
Ikoonikonstant tuleks paigutada nupu argumenti:
123 | Sub MsgBoxQuestionIcon ()MsgBox "Küsimuse näide", vbQuestionEnd Sub |
See loob vaikimisi „OK” sõnumikast küsimuse ikooniga:
Pange tähele, kuidas sisestades kuvab VBA redaktor teile saadaolevaid valikuid:
See on kasulik, kuna te ei pea meeles pidama täpset süntaksi ega ikoonide või nuppude nimesid.
Nüüd demonstreerime iga sõnumikasti ikooni:
MsgBoxi ikoonid - teave
123 | Sub MsgBoxInformationIcon ()MsgBox "Teabe näide", vbInformationEnd Sub |
MsgBoxi ikoonid - kriitilised
123 | Sub MsgBoxCriticalIcon ()MsgBox "kriitiline näide", vbCriticalEnd Sub |
MsgBoxi ikoonid - küsimus
123 | Sub MsgBoxQuestionIcon ()MsgBox "Küsimuse näide", vbQuestionEnd Sub |
MsgBoxi ikoonid - hüüatus
123 | Sub MsgBoxExclamationIcon ()MsgBox "hüüumärgi näide", vbExclamationEnd Sub |
Allpool räägime erinevate nuppude paigutusega sõnumikastide genereerimisest. Kui valite mõne muu sõnumikasti tüübi, peate nuppude järel lisama ikooni tüübi „+” abil:
123 | Sub MsgBoxQuestionIcon ()MsgBox "Kas soovite jätkata?", VbOKCancel + vbQuestionEnd Sub |
MsgBoxi muutujad
Siiani oleme töötanud peamiselt vaikimisi „OK” sõnumikastiga. Sõnumikastil OK on ainult üks võimalus: nupu „OK” vajutamine võimaldab koodi jätkata. Siiski saate määrata ka muid nupurühmi: OK / Tühista, Jah / Ei jne.
Sel juhul soovite teha erinevaid toiminguid sõltuvalt sellest, millist nuppu vajutatakse. Vaatame näidet.
Siin on sõnumikast, mille loome:
See on kogu kood (me jagame selle järgnevalt):
123456789101112 | Sub MsgBoxVariable ()Hämar vastus täisarvunaanswer = MsgBox ("Kas soovite jätkata?", vbQuestion + vbYesNo)Kui vastus = vbJah siisMsgBox "Jah"MuiduMsgBox "Ei"Lõpp KuiEnd Sub |
Esiteks määrame sõnumikasti väljundi täisarvulisele muutujale.
123 | Hämar vastus täisarvunaanswer = MsgBox ("Kas soovite jätkata?", vbQuestion + vbYesNo) |
Järgmisena kasutame If-Else'i, et teha kindlaks, mida teha, sõltuvalt sellest, millist nuppu vajutatakse:
12345 | Kui vastus = vbJah siisMsgBox "Jah"MuiduMsgBox "Ei"Lõpp Kui |
Funktsioon MsgBox tagastab täisarvu väärtuse (vahemikus 1-7), nii et määratleme muutuja täisarvuna. Selle asemel, et viidata täisarvunumbrile, võite viidata konstandile (nt vbOK, vbCancel jne). Vaadake seda tabelit, et näha kõiki võimalusi:
Nupp | Pidev | Väärtus |
---|---|---|
Okei | vbOK | 1 |
Tühista | vbTühista | 2 |
Katkesta | vbAbort | 3 |
Uuesti proovima | vbProovige uuesti | 4 |
Ignoreeri | vb Ignoreeri | 5 |
Jah | vbJah | 6 |
Ei | vbEi | 7 |
Nüüd demonstreerime iga nupurühma:
OK sõnumikast - vbOKOnly
See on tavaline VBA sõnumikast.
123456 | Sub MsgBox_OKOnly ()Hämar vastus täisarvunavastus = MsgBox ("OKOnly näide", vbOKOnly)End Sub |
OK Tühista sõnumikast - vbOKCancel
123456789101112 | Sub MsgBox_OKCancel ()Hämar vastus täisarvunaanswer = MsgBox ("OK Tühista näide", vbOKCancel)Kui vastus = vbOK SiisSõnumikast "OK"MuiduMsgBox "Tühista"Lõpp KuiEnd Sub |
Jah Ei Sõnumikast - vbJahEi
123456789101112 | Sub MsgBox_YesNo ()Hämar vastus täisarvunaanswer = MsgBox ("Jah Ei näide", vbJahEi)Kui vastus = vbJah siisMsgBox "Jah"MuiduMsgBox "Ei"Lõpp KuiEnd Sub |
Jah Ei Tühista sõnumikast - vbYesNoCancel
1234567891011121314 | Sub MsgBox_YesNoCancel ()Hämar vastus täisarvunaanswer = MsgBox ("Jah Ei Tühista Näide", vbYesNoCancel)Kui vastus = vbJah siisMsgBox "Jah"MuiduKui vastus = vbEi siisMsgBox "Ei"MuiduMsgBox "Tühista"Lõpp KuiEnd Sub |
Katkesta uuesti Proovige ignoreerida sõnumikasti - vbAbortRetryIgnore
1234567891011121314 | Sub MsgBox_AbortRetryIgnore ()Hämar vastus täisarvunaanswer = MsgBox ("Katkesta uuesti proovimise ignoreerimise näide", vbAbortRetryIgnore)Kui vastus = vbAbort SiisSõnumiboks "Katkesta"MuiduKui vastus = vbProovige siisMsgBox "Proovi uuesti"MuiduMsgBox "Ignoreeri"Lõpp KuiEnd Sub |
Proovige uuesti tühistada sõnumikast - vbRetryCancel
123456789101112 | Sub MsgBox_RetryCancel ()Hämar vastus täisarvunaanswer = MsgBox ("Proovi uuesti tühistamise näide", vbRetryCancel)Kui vastus = vbProovige siisMsgBox "Proovi uuesti"MuiduMsgBox "Tühista"Lõpp KuiEnd Sub |
VBA MessageBoxi näited
Sõnumikasti kinnitus enne makro käivitamist
See kood kuvab enne makro helistamist kasti Jah ei. Kui klõpsate jah, kutsutakse makro, kui klõpsatakse Ei, makro ei käivitu.
12345678 | Sub Msgbox_BeforeRunning ()Hämar vastus täisarvunaanswer = MsgBox ("Kas soovite Macro1 käivitada?", vbQuestion + vbYesNo)Kui vastus = vbJah, siis helistage makro1End Sub |
Jah / Ei sõnumikast - välju alamist
Siin kinnitame kasutajaga, kas jätkata makro käitamist. Kui klõpsatakse nupul Ei, väljub kood alamosast, vastasel juhul jätkatakse protseduuri.
12345678910 | Sub Msgbox_BeforeRunning ()Hämar vastus täisarvunaanswer = MsgBox ("Kas soovite jätkata?", vbQuestion + vbYesNo)Kui vastus = vbEi, väljuge alammenüüst"Mingi koodEnd Sub |
VBA sõnumikast Access VBA -s
Kõik ülaltoodud näited töötavad Access VBA -s täpselt samamoodi nagu Excel VBA -s.