Tõenäoliselt olete VBA MsgBox funktsiooniga tuttav. Funktsioon MsgBox, mis aktsepteerib allpool näidatud argumente, on mugav teabe kuvamiseks ja lihtsa kasutaja sisendi saamiseks. See on võimeline saama kasutaja sisendi, kuna see on funktsioon. Funktsioon, nagu te ilmselt teate, tagastab väärtuse. Funktsiooni MsgBox puhul kasutab see tagastatava väärtuse hankimiseks dialoogiboksi. Jätkake lugemist, et näha, kuidas see täpselt töötab.
Argument |
Mida see mõjutab |
Viip |
Sõnumikastis kuvatakse tekst Excel |
Nupud |
Arv, mis määrab, millised nupud (koos ikooniga)
sõnumikastis kuvatakse (valikuline) |
Pealkiri |
Tekst, mis kuvatakse sõnumikasti tiitliribal
(valikuline) |
Siin on funktsiooni MsgBox süntaksi lihtsustatud versioon:
Sõnumikast(viip[, nupud][, pealkiri])
Lihtsa sõnumikasti kuvamine
Funktsiooni MsgBox saate kasutada kahel viisil.
-
Kasutajale sõnumi kuvamiseks: Sel juhul ei huvita teid funktsiooni tagastatud tulemus.
-
Kasutajalt vastuse saamiseks: Sel juhul hoolite funktsiooni tagastatud tulemusest. Tulemus sõltub nupust, mida kasutaja klõpsab.
Kui kasutate funktsiooni MsgBox üksinda, ärge lisage argumentide ümber sulgusid. Järgmises näites kuvatakse lihtsalt teade ja tulemust ei tagastata. Kui teade kuvatakse, peatub kood, kuni kasutaja klõpsab OK.
Sub MsgBoxDemo()
MsgBox "Printimise alustamiseks klõpsake nuppu OK."
Lehed ("Tulemused").Prindi välja
Lõpeta alam
Vaadake allpool, et näha, kuidas see sõnumikast välja näeb. Sellisel juhul algab printimine, kui kasutaja klõpsab nuppu OK. Kas märkate, et printimist ei saa kuidagi tühistada? Jätkake lugemist, et teada saada, kuidas seda parandada.
Lihtne sõnumikast.
Vastuse saamine sõnumikastist
Kui kuvate sõnumikasti, millel on rohkem kui lihtsalt nupp OK, soovite tõenäoliselt teada, millist nuppu kasutaja klõpsab. Sul on vedanud. Funktsioon MsgBox võib tagastada väärtuse, mis tähistab klõpsatud nuppu. Funktsiooni MsgBox tulemuse saate määrata muutujale.
Järgmises koodis kasutatakse mõningaid sisseehitatud konstante, mis muudavad MsgBoxi tagastatud väärtustega töötamise lihtsaks:
Sub GetAnswer()
Dim Ans As Long
Ans = MsgBox ("Kas alustada printimist?", vbYesNo)
Valige Case Ans
Juhtum vbJah
ActiveSheet.PrintOut
Juhtum vb nr
MsgBox "Printimine tühistatud"
Lõpeta Vali
Lõpeta alam
Püsiv |
Väärtus |
Mida see teeb |
vbOKOnly |
0 |
Kuvab ainult nuppu OK. |
vbOKTühista |
1 |
Kuvab nupud OK ja Tühista. |
vbAbortRetryIgnore |
2 |
Kuvab nupud Katkesta, Proovi uuesti ja Ignoreeri. |
vbYesNoCancel |
3 |
Kuvab Jah, Ei ja Tühista nupud. |
vbJahEi |
4 |
Kuvab Jah ja Ei nuppe. |
vbRetryCancel |
5 |
Kuvab nupud Proovi uuesti ja Tühista. |
vb Kriitiline |
16 |
Kuvab kriitilise sõnumi ikooni. |
vbKüsimus |
32 |
Kuvab hoiatuspäringu ikooni. |
vb Hüüatus |
48 |
Kuvab hoiatusteate ikooni. |
vb Teave |
64 |
Kuvab teabesõnumi ikooni. |
vbDefaultButton1 |
0 |
Vaikimisi on esimene nupp. |
vbDefaultButton2 |
256 |
Teine nupp on vaikimisi. |
vbDefaultButton3 |
512 |
Kolmas nupp on vaikimisi. |
vbDefaultButton4 |
768 |
Vaikimisi on neljas nupp. |
Vaadake, kuidas see välja näeb. Selle protseduuri teostamisel määratakse muutujale Ans väärtus vbYes või vbNo, olenevalt sellest, millist nuppu kasutaja klõpsab. Lause Select Case kasutab Ans väärtust, et määrata, millise toimingu kood peaks tegema.
Lihtne kahe nupuga sõnumikast.
Funktsiooni MsgBox tulemust saate kasutada ka ilma muutujat kasutamata, nagu näitab järgmine näide:
Sub Hanki vastus2()
Kui MsgBox("Kas alustada printimist?", vbYesNo) = vbYes Siis
' ...[kood, kui klõpsate Jah]…
Muidu
' ...[kood, kui Jah ei klõpsata]…
Lõpeta Kui
Lõpeta alam