Šioje pamokoje bus aptarta, kaip naudotis „VBA MsgBox“ funkcija, kad vartotojams būtų rodomos pranešimų dėžutės (įskaitant „YesNo Messagebox“). Galbūt jus taip pat domina mūsų straipsnis apie įvesties dėžutes.
VBA „MsgBox“ funkcija
VBA lengva parodyti paprastą „MsgBox“:
1 | „MsgBox“ „Tai pranešimų dėžutė“ |
Tačiau galite nuveikti daug daugiau, nei parodyti paprastą „OK“ pranešimų laukelį. Prieš gilindamiesi į specifiką, greitai pažvelkime į sudėtingą pavyzdį …
VBA Taip Ne pranešimų dėžutė
Žemiau sukursime pranešimų dėžutę su:
- Pavadinimas „Pranešimo dėžutės pavadinimas“ ir raginimas „Tekstas“
- Klaustuko piktograma
- Taip / Ne parinktys vietoj paprasto „Gerai“
- Numatytasis mygtukas = „Ne“
123 | Neryškus atsakymas kaip sveikasis skaičiusatsakymas = „MsgBox“ („Tekstas“, vbQuestion + vbYesNo + vbDefaultButton2, „Message Box Title“) |
Pranešimų dėžutė grąžins „vbYes“ arba „vbNo“, priklausomai nuo vartotojo pasirinkimo. Tada galite atlikti skirtingus veiksmus pagal pasirinkimą:
12345 | Jei atsakymas = vbTaip tada„MsgBox“ „Taip“Kitas„MsgBox“ „Ne“Pabaiga Jei |
Kitame skyriuje parodysime visas jums prieinamas parinktis kuriant pranešimų dėžutes. Tada mes supažindinsime jus su „MsgBox“ funkcijos sintaksė ir galiausiai apžvelgsime kitus pranešimų laukelių pavyzdžius.
VBA pranešimų dėžutės parinktys
Pažvelkite į paveikslėlį žemiau. Čia pamatysite (beveik) visas jums prieinamas parinktis kuriant pranešimų dėžutes. Atkreipkite dėmesį į piktogramas ir skirtingus mygtukus.
Tai „MessageBox Builder“ ekrano kopija iš mūsų „Premium VBA“ priedo: „AutoMacro“. „MessageBox Builder“ leidžia greitai suprojektuoti norimą pranešimų dėžutę ir įterpti kodą į kodo modulį. Jame taip pat yra daug kitų kodų kūrėjų, plati VBA kodų biblioteka ir kodavimo įrankių asortimentas. Tai būtina bet kuriam VBA kūrėjui.
Funkcijos „MsgBox“ sintaksė
„MsgBox“ (raginimas [, mygtukai] [, pavadinimas] [, pagalbos failas, kontekstas])
raginimas (privaloma) - Tai yra pagrindinis pranešimų laukelio tekstas.
mygtukus - Pasirinkite, kuriuos mygtukus rodyti. Jei praleista, „Gerai“. Čia taip pat galite nurodyti, kurią piktogramą rodyti, ir numatytąjį mygtuką.
titulas - Pavadinimas pranešimo laukelio viršuje. Jei praleista, rodomas dabartinės programos pavadinimas (pvz., „Microsoft Excel“).
pagalbos failas - Nurodykite pagalbos failą, kurį galima pasiekti, kai vartotojas spustelės mygtuką „Pagalba“. Jei nurodyta, taip pat turite pridėti kontekstą (žemiau)
kontekste - Skaitmeninė išraiška, vaizduojanti pagalbos kontekstinį numerį, priskirtą atitinkamai pagalbos temai.
Tikriausiai galite nepaisyti pagalbos failo ir konteksto argumentų. Niekada nemačiau jų naudojamų.
Tinkinkite pranešimų dėžutės pavadinimą ir raginimą
Funkcija „MsgBox“ leidžia tinkinti pavadinimą ir raginimus:
1 | „Msgbox“ „Paraginti“, „Pavadinimas“ |
Kitas pavyzdys:
123 | Sub MsgBoxPromptTitle ()„MsgBox“ 1 veiksmas baigtas. Spustelėkite Gerai, kad paleistumėte 2 veiksmą. "," 1 veiksmas iš 5 "Pabaiga Sub |
Svarbu! Turite nepamiršti savo teksto apsupti citatomis.
„MessageBox LineBreaks“
Taip pat prie pranešimų laukelio raginimų galite pridėti eilučių pertraukų naudodami „vbNewLine“.
123 | Sub MsgBoxPromptTitle_NewLine ()„MsgBox“ 1 veiksmas baigtas. & vbNewLine & "Spustelėkite Gerai, kad paleistumėte 2 veiksmą", "1 veiksmas iš 5"Pabaiga Sub |
Atkreipkite dėmesį, kad tekstą sujungdami naudojame simbolį &. Daugiau apie tai, kaip naudoti tekstą ir su tekstu bei kitas eilutės pertraukų įterpimo parinktis, galite sužinoti mūsų straipsnyje apie teksto sujungimą.
„MsgBox“ piktogramos
VBA suteikia galimybę prie pranešimų laukelių pridėti vieną iš keturių iš anksto sukurtų piktogramų:
Piktograma Pastovi | Piktograma |
---|---|
vbInformacija | ![]() |
vbKritinis | ![]() |
vbKlausimas | ![]() |
vbSušukimas | ![]() |
Piktogramos konstanta turi būti įtraukta į mygtuko argumentą:
123 | Sub MsgBoxQuestionIcon ()„MsgBox“ klausimo pavyzdys, vbQuestionPabaiga Sub |
Tai sukurs numatytąjį „Gerai“ pranešimų laukelį su klausimo piktograma:
Atkreipkite dėmesį, kaip rašydamas VBA redaktorius parodys jums prieinamas parinktis:
Tai naudinga, nes jums nereikia prisiminti tikslios sintaksės ar piktogramų ar mygtukų pavadinimų.
Dabar demonstruosime kiekvieną pranešimų dėžutės piktogramą:
„MsgBox“ piktogramos - informacija
123 | Sub MsgBoxInformationIcon ()„MsgBox“ „Informacijos pavyzdys“, „vbInformation“Pabaiga Sub |
„MsgBox“ piktogramos - kritinės
123 | Sub MsgBoxCriticalIcon ()„MsgBox“ „Kritinis pavyzdys“, „vbCritical“Pabaiga Sub |
„MsgBox“ piktogramos - klausimas
123 | Sub MsgBoxQuestionIcon ()„MsgBox“ „Klausimo pavyzdys“, „vbQuestion“Pabaiga Sub |
„MsgBox“ piktogramos - šauktukas
123 | Sub MsgBoxExclamationIcon ()„MsgBox“ šauktuko pavyzdys, vbExclamationPabaiga Sub |
Žemiau kalbėsime apie pranešimų laukelių su skirtingais mygtukų išdėstymais generavimą. Jei pasirinksite kitą pranešimų dėžutės tipą, po mygtukais turėsite pridėti piktogramos tipą naudodami „+“:
123 | Sub MsgBoxQuestionIcon ()„MsgBox“ „Ar norite tęsti?“, VbOKCancel + vbQuestionPabaiga Sub |
„MsgBox“ kintamieji
Iki šiol daugiausia dirbome su numatytuoju „Gerai“ pranešimų langeliu. Pranešimų laukelyje Gerai yra tik viena parinktis: paspaudus „Gerai“, kodas gali būti tęsiamas. Tačiau galite nurodyti ir kitas mygtukų grupes: Gerai / Atšaukti, Taip / Ne ir kt.
Tokiu atveju norėsite atlikti skirtingus veiksmus pagal tai, kuris mygtukas yra paspaustas. Pažvelkime į pavyzdį.
Štai pranešimų dėžutė, kurią sukursime:
Tai yra visas kodas (mes jį išskaidysime toliau):
123456789101112 | Sub MsgBoxVariable ()Neryškus atsakymas kaip sveikasis skaičiusanswer = MsgBox ("Ar norite tęsti?", vbQuestion + vbYesNe)Jei atsakymas = vbTaip tada„MsgBox“ „Taip“Kitas„MsgBox“ „Ne“Pabaiga JeiPabaiga Sub |
Pirmiausia pranešimų dėžutės išvestį priskiriame sveiko skaičiaus kintamajam.
123 | Neryškus atsakymas kaip sveikasis skaičiusanswer = MsgBox ("Ar norite tęsti?", vbQuestion + vbYesNe) |
Toliau mes naudojame „If-Else“, kad nustatytume, ką daryti, atsižvelgiant į paspaustą mygtuką:
12345 | Jei atsakymas = vbTaip tada„MsgBox“ „Taip“Kitas„MsgBox“ „Ne“Pabaiga Jei |
Funkcija „MsgBox“ grąžina sveiką skaičių (nuo 1 iki 7), todėl kintamąjį apibrėžiame kaip sveiką skaičių. Tačiau vietoj nuorodos į sveikąjį skaičių galite kreiptis į konstantą (pvz., VbOK, vbCancel ir kt.). Peržiūrėkite šią lentelę, kad pamatytumėte visas parinktis:
Mygtukas | Pastovus | Vertė |
---|---|---|
Gerai | vbOK | 1 |
Atšaukti | vbAtšaukti | 2 |
Nutraukti | vbAbortas | 3 |
Bandykite dar kartą | vbRetry | 4 |
Ignoruoti | vb Ignoruoti | 5 |
Taip | vbTaip | 6 |
Ne | vbNe | 7 |
Dabar demonstruosime kiekvieną mygtukų grupę:
Gerai pranešimų dėžutė - vbOKOnly
Tai yra standartinė VBA pranešimų dėžutė.
123456 | Sub MsgBox_OKOnly ()Neryškus atsakymas kaip sveikasis skaičiusatsakymas = „MsgBox“ („OKOnly example“, „vbOKOnly“)Pabaiga Sub |
Gerai Atšaukti pranešimų dėžutę - vbOKCancel
123456789101112 | Sub MsgBox_OKCancel ()Neryškus atsakymas kaip sveikasis skaičiusatsakymas = „MsgBox“ („Gerai atšaukti pavyzdį“, vbOKCancel)Jei atsakymas = vbOK Tada„MsgBox“ „Gerai“Kitas„MsgBox“ „Atšaukti“Pabaiga JeiPabaiga Sub |
Taip Ne Pranešimų dėžutė - vbTaip Ne
123456789101112 | Sub MsgBox_YesNo ()Neryškus atsakymas kaip sveikasis skaičiusatsakymas = „MsgBox“ („Taip Ne pavyzdys“, vbYesNo)Jei atsakymas = vbTaip tada„MsgBox“ „Taip“Kitas„MsgBox“ „Ne“Pabaiga JeiPabaiga Sub |
Taip Ne Atšaukti pranešimų dėžutės - vbYesNoCancel
1234567891011121314 | Sub MsgBox_YesNoCancel ()Neryškus atsakymas kaip sveikasis skaičiusatsakymas = „MsgBox“ („Taip Ne Atšaukti pavyzdys“, vbYesNoCancel)Jei atsakymas = vbTaip tada„MsgBox“ „Taip“Kitaip Jei atsakymas = vbNe Tada„MsgBox“ „Ne“Kitas„MsgBox“ „Atšaukti“Pabaiga JeiPabaiga Sub |
Nutraukti bandymą dar kartą ignoruoti pranešimų laukelį - vbAbortRetryIgnore
1234567891011121314 | Sub MsgBox_AbortRetryIgnore ()Neryškus atsakymas kaip sveikasis skaičiusatsakymas = „MsgBox“ („Nutraukti pakartotinį bandymą ignoruoti pavyzdį“, vbAbortRetryIgnore)Jei atsakymas = vbAbort Tada„MsgBox“ „Nutraukti“Kitu atveju, jei atsakymas = vbPabandykite tada„MsgBox“ „Bandyti iš naujo“Kitas„MsgBox“ „Ignoruoti“Pabaiga JeiPabaiga Sub |
Bandyti dar kartą Atšaukti pranešimų laukelį - vbRetryCancel
123456789101112 | Sub MsgBox_RetryCancel ()Neryškus atsakymas kaip sveikasis skaičiusatsakymas = „MsgBox“ („Bandyti atšaukti pavyzdį“, „vbRetryCancel“)Jei atsakymas = vbPabandykite tada„MsgBox“ „Bandyti iš naujo“Kitas„MsgBox“ „Atšaukti“Pabaiga JeiPabaiga Sub |
„VBA MessageBox“ pavyzdžiai
Pranešimų laukelio patvirtinimas prieš paleidžiant makrokomandą
Prieš iškviečiant makrokomandą, šis kodas parodys laukelį „Taip ne“. Jei spustelėjama „Taip“, vadinama makrokomanda, o jei „Ne“, makrokomanda neveikia.
12345678 | Sub Msgbox_BeforeRunning ()Neryškus atsakymas kaip sveikasis skaičiusatsakymas = „MsgBox“ („Ar norite paleisti„ Macro1 “?“, vbQuestion + vbYesNo)Jei atsakymas = vbTaip, tada iškvieskite makrokomandą1Pabaiga Sub |
Taip / Ne Pranešimų dėžutė - Išeiti iš antr
Čia su vartotoju patvirtinsime, ar toliau vykdyti makrokomandą. Jei spustelėsite „Ne“, kodas išeis iš antrinio, kitaip procedūra bus tęsiama.
12345678910 | Sub Msgbox_BeforeRunning ()Neryškus atsakymas kaip sveikasis skaičiusatsakymas = „MsgBox“ („Ar norite tęsti?“, vbQuestion + vbYesNe)Jei atsakymas = vbNe, tada uždarykite Sub'Kažkoks kodasPabaiga Sub |
VBA pranešimų dėžutė „Access VBA“
Visi aukščiau pateikti pavyzdžiai „Access VBA“ veikia lygiai taip pat, kaip „Excel VBA“.