Taip Ne Pranešimų dėžutė („Msgbox“) - VBA kodo pavyzdžiai

Š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“.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave