Tikriausiai esate susipažinę su VBA MsgBox funkcija. Funkcija MsgBox, kuri priima toliau pateiktus argumentus, yra patogi norint rodyti informaciją ir gauti paprastą vartotojo įvestį. Jis gali gauti vartotojo įvestį, nes tai funkcija. Funkcija, kaip tikriausiai žinote, grąžina reikšmę. MsgBox funkcijos atveju ji naudoja dialogo langą, kad gautų grąžinamą reikšmę. Skaitykite toliau, kad pamatytumėte, kaip tai tiksliai veikia.
Argumentas |
Ką Tai Įtakoja |
Raginimas |
Pranešimo laukelyje rodomas tekstas „Excel“. |
Mygtukai |
Skaičius, nurodantis, kurie mygtukai (kartu su kokia piktograma)
rodomi pranešimo laukelyje (pasirenkama) |
Pavadinimas |
Tekstas, rodomas pranešimo laukelio pavadinimo juostoje
(nebūtina) |
Štai supaprastinta funkcijos MsgBox sintaksė:
MsgBox(prompt[, mygtukai][, pavadinimas])
Rodomas paprastas pranešimų laukelis
MsgBox funkciją galite naudoti dviem būdais:
-
Norėdami tiesiog parodyti pranešimą vartotojui: Šiuo atveju jums nerūpi funkcijos grąžintas rezultatas.
-
Norėdami gauti atsakymą iš vartotojo: Šiuo atveju jums rūpi funkcijos grąžintas rezultatas. Rezultatas priklauso nuo mygtuko, kurį vartotojas spusteli.
Jei naudojate vieną funkciją „MsgBox“, nedėkite skliaustų aplink argumentus. Toliau pateiktame pavyzdyje tiesiog rodomas pranešimas ir nepateikiamas rezultatas. Kai rodomas pranešimas, kodas sustoja, kol vartotojas spustelėja Gerai.
Sub MsgBoxDemo()
MsgBox „Norėdami pradėti spausdinti, spustelėkite Gerai“.
Lapai („Rezultatai“). Spausdinti
Pabaigos sub
Žemiau pažiūrėkite, kaip atrodo šis pranešimų laukelis. Tokiu atveju spausdinimas pradedamas vartotojui spustelėjus Gerai. Ar pastebite, kad nėra galimybės atšaukti spausdinimo? Skaitykite toliau, kad sužinotumėte, kaip tai ištaisyti.
Paprasta pranešimų dėžutė.
Atsakymo gavimas iš pranešimų dėžutės
Jei rodomas pranešimų laukelis, kuriame yra ne tik mygtukas Gerai, tikriausiai norėsite sužinoti, kurį mygtuką spusteli vartotojas. Tau pasisekė. Funkcija MsgBox gali grąžinti reikšmę, nurodančią, kuris mygtukas buvo paspaustas. MsgBox funkcijos rezultatą galite priskirti kintamajam.
Šiame kode naudojamos kai kurios įtaisytosios konstantos, kurios palengvina darbą su MsgBox grąžinamomis reikšmėmis:
Sub Gauti atsakymą ()
Dim Ans As Long
Ans = MsgBox ("Pradėti spausdinti?", vbYesNo)
Pasirinkite Case Ans
Atvejis vbTaip
ActiveSheet.PrintOut
Byla vbNr
MsgBox „Spausdinimas atšauktas“
Pabaigos pasirinkimas
Pabaigos sub
Pastovus |
Vertė |
Ką tai daro |
vbOKOnly |
0 |
Rodo tik mygtuką OK. |
vbOKAtšaukti |
1 |
Rodo mygtukus OK ir Cancel. |
vbAbortRetryIgnore |
2 |
Rodomi mygtukai Nutraukti, Bandyti dar kartą ir Ignoruoti. |
vbYesNoCancel |
3 |
Rodomi mygtukai Taip, Ne ir Atšaukti. |
vbTaipNe |
4 |
Rodo mygtukus Taip ir Ne. |
vbRetryCancel |
5 |
Rodomi mygtukai Bandyti iš naujo ir Atšaukti. |
vbKritinis |
16 |
Rodo kritinio pranešimo piktogramą. |
vbKlausimas |
32 |
Rodo įspėjimo užklausos piktogramą. |
vb Šauktukas |
48 |
Rodo įspėjimo pranešimo piktogramą. |
vbInformacija |
64 |
Rodo informacinio pranešimo piktogramą. |
vbDefaultButton1 |
0 |
Pirmasis mygtukas yra numatytasis. |
vbDefaultButton2 |
256 |
Antrasis mygtukas yra numatytasis. |
vbDefaultButton3 |
512 |
Trečiasis mygtukas yra numatytasis. |
vbDefaultButton4 |
768 |
Ketvirtasis mygtukas yra numatytasis. |
Pažiūrėkite, kaip tai atrodo. Kai atliekate šią procedūrą, kintamajam Ans priskiriama vbYes arba vbNo reikšmė, atsižvelgiant į tai, kurį mygtuką spusteli vartotojas. Teiginyje Select Case naudojama reikšmė Ans, kad nustatytų, kurį veiksmą turėtų atlikti kodas.
Paprasta pranešimų dėžutė su dviem mygtukais.
Taip pat galite naudoti funkcijos MsgBox rezultatą nenaudodami kintamojo, kaip parodyta toliau pateiktame pavyzdyje:
Sub Gauti atsakymą2()
Jei MsgBox ("Pradėti spausdinti?", vbYesNo) = vbYes Tada
' ...[kodas, jei spustelėsite Taip]…
Kitas
' ...[kodas, jei nepaspaudžiamas Taip]…
Pabaiga, jei
Pabaigos sub