VBA mygtukų argumento lankstumas leidžia lengvai tinkinti „Excel“ pranešimų laukelius. Galite pasirinkti, kuriuos mygtukus rodyti, nustatyti, ar rodoma piktograma, ir nuspręsti, kuris mygtukas yra numatytasis (numatytasis mygtukas „paspaudžiamas“, jei vartotojas paspaudžia Enter).
Mygtukų argumentui galite naudoti įtaisytąsias konstantas. Jei norite, galite naudoti vertę, o ne konstantą (tačiau naudoti įtaisytąsias konstantas yra daug lengviau).
Norėdami naudoti daugiau nei vieną iš šių konstantų kaip argumentą, tiesiog sujunkite jas naudodami + operatorių. Pavyzdžiui, norėdami parodyti pranešimų laukelį su mygtukais Taip ir Ne bei šauktuko piktograma, kaip antrąjį MsgBox argumentą naudokite šią išraišką:
vbYesNo + vb Šauktukas
Arba, jei norite, kad kodas būtų mažiau suprantamas, naudokite reikšmę 52 (ty 4 + 48).
Šiame pavyzdyje naudojamas konstantų derinys, kad būtų rodomas pranešimų laukelis su mygtuku Taip ir Ne (vbYesNo), taip pat klaustuko piktograma (vbQuestion). Nuolatinis vbDefaultButton2 antrasis mygtukas (Ne) nurodomas kaip numatytasis mygtukas, ty mygtukas, kuris spustelėjamas, jei vartotojas paspaudžia Enter. Paprastumo dėlei šios konstantos priskiriamos kintamajam Config ir tada naudokite Config kaip antrąjį MsgBox funkcijos argumentą:
Sub Gauti atsakymą3()
Dim Config As Long
Dim Ans kaip sveikasis skaičius
Config = vbYesNo + vbQuestion + vbDefaultButton2
Ans = MsgBox ("Apdoroti mėnesio ataskaitą?", Konfigūracija)
Jei Ans = vbYes tada RunReport
Pabaigos sub
Patikrinkite pranešimų laukelį, kurį „Excel“ rodo, kai vykdote „GetAnswer3“ procedūrą. Jei vartotojas spustelėja mygtuką Taip, programa vykdo procedūrą, pavadintą RunReport. Jei vartotojas spusteli mygtuką Ne (arba paspaudžia Enter), rutina baigiasi be jokio veiksmo. Kadangi funkcijoje „MsgBox“ buvo praleistas pavadinimo argumentas, „Excel“ naudoja numatytąjį pavadinimą „Microsoft Excel“.
Funkcijos MsgBox mygtukų argumentas nustato, kas bus rodoma pranešimo laukelyje.
Šioje rutinoje pateikiamas dar vienas funkcijos MsgBox naudojimo pavyzdys:
Sub Gauti atsakymą4()
Pritemdykite pranešimą kaip eilutę, pavadinimą kaip eilutę
Dim Config As Integer, Ans As Integer
Msg = "Ar norite apdoroti mėnesio ataskaitą?"
Msg = Msg & vbNewLine & vbNewLine
Msg = Msg & "Apdorojant mėnesinę ataskaitą bus "
Msg = Žinutė ir „užtrunka maždaug 15 minučių. tai "
Msg = Msg & "sugeneruos 30 puslapių ataskaitą "
Msg = Msg & "visi dabartiniai pardavimo biurai"
Msg = Žinutė ir „mėnuo“.
Pavadinimas = "XYZ rinkodaros įmonė"
Config = vbYesNo + vbQuestion
Ans = MsgBox (pranešimas, konfigūracija, pavadinimas)
Jei Ans = vbYes tada RunReport
Pabaigos sub
Šiame pavyzdyje parodytas efektyvus būdas nurodyti ilgesnį pranešimą pranešimų laukelyje. Kintamasis (Msg) ir sujungimo operatorius (&) naudojami kuriant pranešimą teiginių serijoje. Konstanta vbNewLine įterpia eilutės lūžio simbolį, kuris pradeda naują eilutę (naudokite jį du kartus, kad įterptumėte tuščią eilutę). Pavadinimo argumentas naudojamas norint parodyti kitokį pavadinimą pranešimo laukelyje. Čia yra pranešimų laukelis, rodomas „Excel“, kai vykdote šią procedūrą.
Šiame dialogo lange, kurį rodo funkcija MsgBox, rodomas pavadinimas, piktograma ir du mygtukai.
Galite naudoti konstantas (pvz., vbYes ir vbNo), kad grąžintumėte MsgBox funkcijos reikšmę. Štai keletas kitų konstantų.
Pastovus |
Vertė |
Ką tai reiškia |
vbOK |
1 |
Vartotojas spustelėjo Gerai. |
vbAtšaukti |
2 |
Vartotojas spustelėjo Atšaukti. |
vbAbort |
3 |
Vartotojas spustelėjo Nutraukti. |
vbPabandykite dar kartą |
4 |
Vartotojas spustelėjo Bandyti dar kartą. |
vb Ignoruoti |
5 |
Vartotojas spustelėjo Ignoruoti. |
vb Taip |
6 |
Vartotojas spustelėjo Taip. |
vb Nr |
7 |
Vartotojas spustelėjo Ne. |
Ir tai beveik viskas, ką jums reikia žinoti apie „MsgBox“ funkciją. Tačiau pranešimų dėžutes naudokite atsargiai. Paprastai nėra jokios priežasties rodyti pranešimų laukelius, kurie nenaudoja jokio tikslo. Pavyzdžiui, žmonės linkę susierzinti, kai kasdien mato žinučių laukelį su užrašu „Labas rytas“. Dėkojame, kad įkėlėte Biudžeto prognozės darbaknygę.