Da Ne Okvir za sporočila (Msgbox) - Primeri kode VBA

Ta vadnica bo obravnavala, kako s funkcijo VBA MsgBox prikazati nabore sporočil uporabnikom (vključno s sporočilom YesNo). Morda vas zanima tudi naš članek o vhodnih okencih.

Funkcija VBA MsgBox

V VBA je preprosto prikazati preprost MsgBox:

1 MsgBox "To je polje za sporočila"

Vendar lahko naredite veliko več kot le prikazati preprosto okno s sporočilom OK. Na hitro poglejmo zapleten primer, preden se poglobimo v podrobnosti …

VBA DaNe polje za sporočila

Spodaj bomo ustvarili polje za sporočila z:

  • Naslov »Naslov polja z sporočili« in poziv »Besedilo«
  • Ikona vprašaja
  • Da / Ne možnosti namesto preprostega »V redu«
  • Privzeti gumb = 'Ne'
123 Zatemnjen odgovor kot celo številoanswer = MsgBox ("Besedilo", vbQuestion + vbDaNe + vbDefaultButton2, "Naslov polja za sporočila")

Poštno polje bo vrnilo vbYes ali vbNo, odvisno od izbire uporabnika. Nato lahko na podlagi izbire izvedete različna dejanja:

12345 Če je odgovor = vbDaMsgBox "Da"Sicer paMsgBox "Ne"Konec Če

V naslednjem razdelku vam bomo pokazali vse možnosti, ki so vam na voljo pri ustvarjanju oken za sporočila. Nato vas bomo seznanili s sintakso funkcije MsgBox in na koncu preučili druge primere oken za sporočila.

Možnosti polja za sporočila VBA

Oglejte si spodnjo sliko. Tu boste videli (skoraj) vse možnosti, ki so vam na voljo pri ustvarjanju oken za sporočila. Bodite pozorni na ikone in različne gumbe.

To je posnetek zaslona »MessageBox Builder« iz našega dodatka Premium VBA: AutoMacro. Builder MessageBox vam omogoča hitro oblikovanje želenega nabiralnika in vstavljanje kode v kodni modul. Vsebuje tudi številne druge ustvarjalce kod, obsežno knjižnico kod VBA in izbor orodij za kodiranje. To mora imeti vsak razvijalec VBA.

Sintaksa funkcije MsgBox

MsgBox (poziv [, gumbi] [, naslov] [, datoteka pomoči, kontekst])

poziv (obvezno) - To je primarno besedilo polja za sporočila.

gumbi - Izberite gumbe za prikaz. Če izpustite, samo »V redu«. Tu lahko določite tudi, katero ikono želite prikazati, in privzeti gumb.

naslov - Naslov na vrhu polja s sporočilom. Če izpustite, se prikaže ime trenutne aplikacije (npr. Microsoft Excel).

datoteko za pomoč - Določite datoteko pomoči, do katere lahko dostopate, ko uporabnik klikne gumb »Pomoč«. Če je navedeno, morate dodati tudi kontekst (spodaj)

kontekstu - Številčni izraz, ki predstavlja številko konteksta pomoči, dodeljeno ustrezni temi pomoči.

Verjetno lahko prezrete datoteko za pomoč in kontekstne argumente. Nikoli jih nisem videl rabljenih.

Prilagodite naslov in poziv polja z sporočili

Funkcija MsgBox vam omogoča, da prilagodite naslov in sporočila poziva tako:

1 Sporočilo "Poziv" ,, "Naslov"

Še en primer:

123 Sub MsgBoxPromptTitle ()MsgBox "1. korak dokončan. Kliknite V redu, da zaženete 2. korak." ,, "1. korak od 5"End Sub

Pomembno! Ne pozabite obdati besedila s citati.

MessageBox LineBreaks

V pozive po polju za sporočila lahko dodate tudi prelome vrstic z »vbNewLine«.

123 Sub MsgBoxPromptTitle_NewLine ()MsgBox "Korak 1 dokončan." & vbNewLine & "Kliknite V redu za zagon 2. koraka", "1. korak od 5"End Sub

Upoštevajte, da uporabljamo simbol & za združevanje besedila. Več o uporabi & z besedilom in drugih možnostih za vstavljanje prelomov vrstic lahko izveste v našem članku o združevanju besedila.

Ikone MsgBox

VBA vam omogoča, da v okenca za sporočila dodate eno od štirih vnaprej pripravljenih ikon:

Ikona konstantna Ikona
vbInformacije
vbCritical
vbVprašanje
vbKlicaj

V argument gumba je treba postaviti konstanto ikone:

123 Sub MsgBoxQuestionIcon ()MsgBox "Primer vprašanja", vbQuestionEnd Sub

To bo ustvarilo privzeto polje s sporočilom »V redu« z ikono vprašanja:

Upoštevajte, kako vam bo urejevalnik VBA med tipkanjem pokazal možnosti, ki so vam na voljo:

To je v pomoč, ker vam ni treba zapomniti natančne skladnje ali imen ikon ali gumbov.

Zdaj bomo prikazali ikono vsakega polja za sporočila:

Ikone MsgBox - Informacije

123 Sub MsgBoxInformationIcon ()MsgBox "Informacijski primer", vbInformationEnd Sub

Ikone MsgBox - kritične

123 Sub MsgBoxCriticalIcon ()MsgBox "Kritični primer", vbCriticalEnd Sub

Ikone MsgBox - Vprašanje

123 Sub MsgBoxQuestionIcon ()MsgBox "Primer vprašanja", vbQuestionEnd Sub

Ikone MsgBox - Klicaj

123 Sub MsgBoxExclamationIcon ()MsgBox "Primer vzklika", vbExclamationEnd Sub

Spodaj bomo govorili o ustvarjanju oken za sporočila z različnimi postavitvami gumbov. Če izberete drugo vrsto polja za sporočila, boste morali tipki dodati tipko s tipko »+«:

123 Sub MsgBoxQuestionIcon ()MsgBox "Ali želite nadaljevati?", VbOKCancel + vbQuestionEnd Sub

Spremenljivke MsgBox

Doslej smo delali predvsem s privzetim poljem »V redu«. Sporočilo OK ima samo eno možnost: Če pritisnete »V redu«, se koda lahko nadaljuje. Lahko pa določite tudi druge skupine gumbov: V redu / Prekliči, Da / Ne itd.

V tem primeru boste želeli izvesti različna dejanja glede na pritisk gumba. Poglejmo primer.

Tukaj je polje s sporočilom, ki ga bomo ustvarili:

To je celotna koda (naslednji jo bomo razčlenili):

123456789101112 Sub MsgBoxVariable ()Zatemnjen odgovor kot celo številoanswer = MsgBox ("Ali želite nadaljevati?", vbQuestion + vbDa Ne)Če je odgovor = vbDaMsgBox "Da"Sicer paMsgBox "Ne"Konec ČeEnd Sub

Najprej dodelimo izhod v sporočilu celobrojni spremenljivki.

123 Zatemnjen odgovor kot celo številoanswer = MsgBox ("Ali želite nadaljevati?", vbQuestion + vbDa Ne)

Nato uporabimo If-Else, da ugotovimo, kaj storiti glede na pritisnjen gumb:

12345 Če je odgovor = vbDaMsgBox "Da"Sicer paMsgBox "Ne"Konec Če

Funkcija MsgBox vrne celoštevilčno vrednost (med 1-7), zato spremenljivko definiramo kot celoštevilsko vrsto. Namesto da bi se sklicevali na celo število, se lahko sklicujete na konstanto (npr. VbOK, vbCancel itd.). V tej tabeli si oglejte vse možnosti:

Gumb Konstantno Vrednost
v redu vbOK 1
Prekliči vb Prekliči 2
Prekini vbAbort 3
Poskusite znova vbRetry 4
Prezri vbIgnore 5
Da vbDa 6
Ne vbNo 7

Zdaj bomo predstavili vsako skupino gumbov:

OK Sporočilo - vbOKOnly

To je standardni nabiralnik sporočil VBA.

123456 Sub MsgBox_OKOnly ()Zatemnjen odgovor kot celo številoanswer = MsgBox ("V redu samo primer", vbOKOnly)End Sub

OK Prekliči sporočilo - vbOK Prekliči

123456789101112 Pod MsgBox_OK Prekliči ()Zatemnjen odgovor kot celo številoanswer = MsgBox ("V redu Prekliči primer", vbOKCancel)Če je odgovor = vbOK PotemSporočilo "V redu"Sicer paMsgBox "Prekliči"Konec ČeEnd Sub

Da Ne Sporočilo - vbDaNe

123456789101112 Pod MsgBox_DaNe ()Zatemnjen odgovor kot celo številoanswer = MsgBox ("Da Ne Primer", vbYesNo)Če je odgovor = vbDaMsgBox "Da"Sicer paMsgBox "Ne"Konec ČeEnd Sub

Da Ne Prekliči polje s sporočilom - vbDaNo Prekliči

1234567891011121314 Pod MsgBox_DaNe Prekliči ()Zatemnjen odgovor kot celo številoanswer = MsgBox ("Da Ne Prekliči primer", vbYesNoCancel)Če je odgovor = vbDaMsgBox "Da"V nasprotnem primeru odgovor = vbNo PotemMsgBox "Ne"Sicer paMsgBox "Prekliči"Konec ČeEnd Sub

Okvir za sporočila Prezri znova poskusi prezreti - vbAbortRetryIgnore

1234567891011121314 Sub MsgBox_AbortRetryIgnore ()Zatemnjen odgovor kot celo številoanswer = MsgBox ("Primer preklica ignoriranja ponovnega poskusa", vbAbortRetryIgnore)Če je odgovor = vbAbort PotemSporočilo "Prekini"ElseIf answer = vbRetry NatoMsgBox "Poskusi znova"Sicer paMsgBox "Prezri"Konec ČeEnd Sub

Ponovno poskusi preklicati sporočilo - vbRetryCancel

123456789101112 Sub MsgBox_RetryCancel ()Zatemnjen odgovor kot celo številoanswer = MsgBox ("Primer ponovnega preklica", vbRetryCancel)Če je odgovor = vbPoskusite znovaMsgBox "Poskusi znova"Sicer paMsgBox "Prekliči"Konec ČeEnd Sub

Primeri VBA MessageBox

Potrditev polja za sporočila pred zagonom makra

Ta koda bo pred klicem makra prikazala polje Da sporočilo. Če kliknete Da, se pokliče makro, če kliknete Ne, se makro ne zažene.

12345678 Sub Msgbox_BeforeRunning ()Zatemnjen odgovor kot celo številoanswer = MsgBox ("Ali želite zagnati Macro1?", vbQuestion + vbDaNe)Če je odgovor = vbDa, potem pokličite makro1End Sub

Da / Ne Sporočilo - Zapri Sub

Tu bomo z uporabnikom potrdili, ali naj še naprej izvaja makro. Če kliknete Ne, se koda zapre iz podrejenega, sicer se postopek nadaljuje.

12345678910 Sub Msgbox_BeforeRunning ()Zatemnjen odgovor kot celo številoanswer = MsgBox ("Ali želite nadaljevati?", vbQuestion + vbDa Ne)Če je odgovor = vbNo, potem zapustite pod"Nekaj ​​kodeksaEnd Sub

VBA sporočilo v Accessu VBA

Vsi zgornji primeri delujejo popolnoma enako v Access VBA kot v Excelu VBA.

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave