Excel VBA MsgBox (polje za sporočila) - vse, kar morate vedeti!

V Excelu VBA lahko s funkcijo MsgBox prikažete polje s sporočilom (kot je prikazano spodaj):

MsgBox ni nič drugega kot pogovorno okno, s katerim lahko svoje uporabnike obvestite tako, da prikažete sporočilo po meri ali dobite nekaj osnovnih vnosov (na primer Da/Ne ali V redu/Prekliči).

Ko je prikazano pogovorno okno MsgBox, se koda VBA ustavi. Če želite zagnati preostalo kodo VBA, morate klikniti katerega koli gumba v polju MsgBox.

Opomba: V tej vadnici bom zamenljivo uporabljal besedilno polje in MsgBox. Pri delu z Excelom VBA morate vedno uporabljati MsgBox.

Anatomija VBA MsgBox v Excelu

Okvir za sporočila ima naslednje dele:

  1. Naslov: To se običajno uporablja za prikaz vsebine sporočila. Če ne določite ničesar, se prikaže ime aplikacije - v tem primeru Microsoft Excel.
  2. Poziv: To je sporočilo, ki ga želite prikazati. S tem prostorom lahko napišete nekaj vrstic ali celo prikažete tabele/podatke.
  3. Gumb (i): Čeprav je privzeti gumb V redu, ga lahko prilagodite tako, da prikazuje gumbe, kot so Da/Ne, Da/Ne/Prekliči, Poskusi/Prezri itd.
  4. Zapri ikono: Polje s sporočilom lahko zaprete s klikom na ikono za zapiranje.

Sintaksa funkcije VBA MsgBox

Kot sem omenil, je MsgBox funkcija in ima skladnjo, podobno kot druge funkcije VBA.

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

  • poziv - To je zahtevan argument. Prikaže sporočilo, ki ga vidite v polju MsgBox. V našem primeru je besedilo "To je vzorec MsgBox" "poziv". V pozivu lahko uporabite do 1024 znakov in jih lahko uporabite tudi za prikaz vrednosti spremenljivk. Če želite prikazati poziv z več vrsticami, lahko to storite tudi (več o tem kasneje v tej vadnici).
  • [gumbi] - Določa, kateri gumbi in ikone so prikazani v polju MsgBox. Če na primer uporabljam vbOkOnly, bo prikazan samo gumb V redu, če pa uporabim vbOKCancel, bo prikazan gumb OK in Prekliči. Kasneje v tej vadnici bom obravnaval različne vrste gumbov.
  • [naslov] - Tu lahko v pogovornem oknu za sporočila določite, kateri napis želite. To je prikazano v naslovni vrstici polja MsgBox. Če ne določite ničesar, bo prikazano ime aplikacije.
  • [datoteka pomoči] - Določite lahko datoteko pomoči, do katere lahko dostopate, ko uporabnik klikne gumb za pomoč. Gumb za pomoč se prikaže le, če zanj uporabite kodo gumba. Če uporabljate datoteko pomoči, morate določiti tudi kontekstni argument.
  • [kontekst] - To je številski izraz, ki je številka konteksta pomoči, dodeljena ustrezni temi pomoči.

Če ste novi v konceptu Msgbox, ne upoštevajte argumentov [filefile] in [context]. Redko sem videl, da se ti uporabljajo.

Opomba: Vsi argumenti v oglatih oklepajih so neobvezni. Obvezen je le argument "hitro".

Konstante gumbov Excel VBA MsgBox (primeri)

V tem razdelku bom obravnaval različne vrste gumbov, ki jih lahko uporabljate z VBA MsgBox.

Preden vam pokažem kodo VBA in kako izgleda MsgBox, je tukaj tabela, ki navaja vse različne konstante gumbov, ki jih lahko uporabite.

Gumb konstanta Opis
vbOKSamo Prikaže samo gumb OK
vbOK Prekliči Prikaže gumba V redu in Prekliči
vbAbortRetryIgnore Prikaže gumbe Prekini, Ponovi in ​​Prezri
vbDaNe Prikaže gumba Da in Ne
vbDaNe Prekliči Prikaže gumbe Da, Ne in Prekliči
vbRetryCancel Prikaže gumbe Ponovi in ​​Prekliči
vbMsgBoxHelpButton Prikaže gumb za pomoč. Če želite, da to deluje, morate uporabiti funkcijo pomoči in kontekstne argumente v funkciji MsgBox
vbDefaultButton1 Prvi gumb postane privzeto. Številko lahko spremenite, če želite spremeniti privzeti gumb. Na primer, vbDefaultButton2 privzeto prilagodi drugi gumb

Opomba: Med ogledom primerov ustvarjanja različnih gumbov se lahko vprašate, kaj je smiselno imeti te gumbe, če to nima vpliva na kodo.

Res! Na podlagi izbire lahko kodirate, kaj želite narediti s kodo. Če na primer izberete V redu, se mora koda nadaljevati, če pa kliknete Prekliči, se mora koda ustaviti. To lahko storite z uporabo spremenljivk in dodelitvi vrednosti polja za sporočila spremenljivki. To bomo obravnavali v naslednjih razdelkih te vadnice.

Zdaj pa poglejmo nekaj primerov, kako se lahko različni gumbi prikažejo v sporočilu MsgBox in kako izgleda.

Gumbi MsgBox - vbOKOnly (privzeto)

Če uporabite samo poziv in ne navedete nobenega od argumentov, boste dobili privzeto polje s sporočilom, kot je prikazano spodaj:

Spodaj je koda, ki bo dala to polje s sporočilom:

Sub DefaultMsgBox () MsgBox "To je vzorec polja" End Sub

Upoštevajte, da mora biti besedilni niz v dvojnih narekovajih.

Uporabite lahko tudi konstanto gumba vbOKOnly, vendar tudi če ne določite ničesar, je to privzeto.

Gumbi za sporočilo - V redu in Prekliči

Če želite prikazati samo V redu in gumb Prekliči, morate uporabiti konstanto vbOKCancel.

Sub MsgBoxOKCancel () MsgBox "Želite nadaljevati?", VbOKCancel End Sub

Gumbi MsgBox - Prekini, Poskusi znova in Prezri

S konstanto ‘vbAbortRetryIgnore’ lahko prikažete gumbe Prekliči, Poskusi znova in Prezri.

Sub MsgBoxAbortRetryIgnore () MsgBox "Kaj želite storiti?", VbAbortRetryIgnore End Sub

Gumbi MsgBox - da in ne

Za prikaz gumbov Da in Ne lahko uporabite konstanto 'vbYesNo'.

Sub MsgBoxYesNo () MsgBox "Ali naj se ustavimo?", VbYesNo End Sub

Gumbi MsgBox - Da, Ne in Prekliči

Za prikaz gumbov Da, Ne in Prekliči lahko uporabite konstanto 'vbYesNoCancel'.

Sub MsgBoxYesNoCancel () MsgBox "Ali naj se ustavimo?", VbYesNoCancel End Sub

Gumbi MsgBox - Poskusite znova in prekličite

Za prikaz gumbov Ponovi in ​​Prekliči lahko uporabite konstanto 'vbRetryCancel'.

Sub MsgBoxRetryCancel () MsgBox "Kaj želite storiti naslednje?", VbRetryCancel End Sub

Gumbi MsgBox - gumb za pomoč

Za prikaz gumba za pomoč lahko uporabite konstanto 'vbMsgBoxHelpButton'. Uporabite ga lahko z drugimi konstantami gumbov.

Sub MsgBoxRetryHelp () MsgBox "Kaj želite storiti naslednje?", VbRetryCancel + vbMsgBoxHelpButton End Sub

Upoštevajte, da smo v tej kodi združili dve različni konstanti gumbov (vbRetryCancel + vbMsgBoxHelpButton). V prvem delu so prikazani gumbi Ponovi in ​​Prekliči, v drugem delu pa gumb Pomoč.

Gumbi MsgBox - Nastavitev privzetega gumba

S konstanto ‘vbDefaultButton1’ lahko prvi gumb nastavite kot privzetega. To pomeni, da je gumb že izbran in če pritisnete enter, ta gumb izvede.

Spodaj je koda, ki bo drugi gumb (gumb 'Ne') nastavila kot privzeto.

Sub MsgBoxOKCancel () MsgBox "Kaj želite storiti naslednje?", VbYesNoCancel + vbDefaultButton2 End Sub

V večini primerov je levi gumb privzeti gumb. Z gumbi vbDefaultButton2, vbDefaultButton3 in vbDefaultButton4 lahko izberete druge gumbe.

Konstante ikon Excel VBA MsgBox (primeri)

Poleg gumbov lahko prilagodite tudi ikone, ki so prikazane v pogovornem oknu MsgBox. Na primer, lahko imate rdečo kritično ikono ali modro ikono informacij.

Spodaj je tabela s kodo, ki bo prikazala ustrezno ikono.

Ikona konstantna Opis
vbCritical Prikaže ikono kritičnega sporočila
vbVprašanje Prikaže ikono vprašanja
vbKlicaj Prikaže ikono opozorilnega sporočila
vbInformacije Prikaže ikono informacij

Ikone MsgBox - kritične

Če želite prikazati kritično ikono v svojem MsgBoxu, uporabite konstanto vbCritical. To lahko uporabite skupaj z drugimi konstantami gumbov (tako, da med kode postavite znak +).

Spodaj je na primer koda, ki bo prikazala privzeti gumb OK s kritično ikono.

Sub MsgBoxCriticalIcon () MsgBox "To je vzorec", vbCritical End Sub

Če želite prikazati kritično ikono z gumboma Da in Ne, uporabite naslednjo kodo:

Sub MsgBoxCriticalIcon () MsgBox "To je vzorčno polje", vbDaNe + vbCritical End Sub

Ikone MsgBox - Vprašanje

Če želite prikazati kritično ikono v svojem MsgBoxu, uporabite konstanto vbQuestion.

Sub MsgBoxQuestionIcon () MsgBox "To je vzorčno polje", vbYesNo + vbQuestion End Sub

Ikone MsgBox - Klicaj

Če želite v svojem MsgBoxu prikazati ikono klicaja, uporabite konstanto vbExclamation.

Sub MsgBoxExclamationIcon () MsgBox "To je vzorčno polje", vbYesNo + vbExclamation End Sub

Ikone MsgBox - Informacije

Če želite prikazati ikono informacij v svojem MsgBoxu, uporabite konstanto vbInformation.

Sub MsgBoxInformationIcon () MsgBox "To je vzorčno polje", vbYesNo + vbInformation End Sub

Prilagajanje naslova in poziva v polju MsgBox

Ko uporabljate MsgBox, lahko prilagodite naslov in sporočila o pozivu.

Doslej je primer, ki smo ga videli, uporabljal Microsoft Excel kot naslov. Če ne navedete argumenta naslov, MsgBox samodejno uporabi naslov aplikacije (kar je bil v tem primeru Microsoft Excel).

Naslov lahko prilagodite tako, da ga navedete v kodi, kot je prikazano spodaj:

Sub MsgBoxInformationIcon () MsgBox "Ali želite nadaljevati?", VbYesNo + vbQuestion, "Korak 1 od 3" End Sub

Podobno lahko tudi prilagodite sporočilo poziva.

V pozivnem sporočilu lahko dodate tudi prelome vrstic.

V spodnjo kodo sem dodal prelom vrstice z uporabo 'vbNewLine'.

Sub MsgBoxInformationIcon () MsgBox "Ali želite nadaljevati?" & vbNewLine & "Kliknite Da za nadaljevanje", vbDaNe + vbVprašanje, "Korak 1 od 3" Končaj pod

Uporabite lahko tudi znak za vrnitev nosilca - Chr (13) - ali vir vrstic - Chr (10), da v sporočilo z pozivom vstavite novo vrstico.

Upoštevajte, da lahko samo pozivnemu sporočilu dodate novo vrstico in ne naslova.

Dodelitev vrednosti MsgBox spremenljivki

Doslej smo videli primere, kjer smo ustvarili polja s sporočili in prilagodili gumbe, ikone, naslov in poziv.

Vendar s klikom na gumb ni bilo nič.

S funkcijo MsgBox v Excelu se lahko odločite, kaj želite narediti, ko uporabnik klikne določen gumb. In to je mogoče, saj ima vsak gumb svojo vrednost.

Če torej kliknem gumb Da, funkcija MsgBox vrne vrednost (6 ali konstanto vbYes), ki jo lahko uporabim v svoji kodi. Podobno, če uporabnik izbere gumb Ne, vrne drugačno vrednost ((7 ali konstanto vbNo)), ki jo lahko uporabim v kodi.

Spodaj je tabela, ki prikazuje natančne vrednosti in konstanto, ki jo vrne funkcija MsgBox. Teh vam ni treba zapomniti, le zavedajte se in lahko uporabite lažje za uporabo konstant.

Klik na 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 pa poglejmo, kako lahko nadziramo kodo makra VBA glede na gumb, ki ga uporabnik klikne.

V spodnji kodi, če uporabnik klikne Da, se prikaže sporočilo »Kliknili ste na Da«, če pa uporabnik klikne Ne, se prikaže: »Kliknili ste na Ne«.

Sub MsgBoxInformationIcon () Rezultat = MsgBox ("Ali želite nadaljevati?", VbYesNo + vbQuestion) Če je Result = vbYes Potem MsgBox "Kliknili ste Da" Drugače: MsgBox "Kliknili ste Ne" End If End Sub

V zgornji kodi sem spremenljivki Result dodelil vrednost funkcije MsgBox. Ko kliknete gumb Da, spremenljivka Rezultat dobi konstanto vbYes (ali številko 6), ko pa kliknete Ne, spremenljivka Rezultat dobi konstanto vbNo (ali številko 7).

Nato sem uporabil konstrukcijo If Then Else za preverjanje, ali spremenljivka Result vsebuje vrednost vbYes. Če se to zgodi, se prikaže poziv »Kliknili ste na Da«, sicer pa »Kliknili ste na Ne«.

Isti koncept lahko uporabite za zagon kode, če uporabnik klikne Da in zapre podrejeno, ko klikne Ne.

Opomba: Ko dodelite izhod MsgBox spremenljivki, morate argumente funkcije MsgBox dati v oklepaj. Na primer, v vrstici Rezultat = MsgBox ("Ali želite nadaljevati?", VbDaNe + vbVprašanje), lahko vidite, da so argumenti v oklepaju.

Če se želite še bolj poglobiti v funkcijo Message Box, je tukaj njen uradni dokument.

Morda vam bodo všeč tudi naslednji vadnici Excel VBA:

  • Excelova funkcija VBA Split.
  • Excel VBA InStr funkcija.
  • Delo s celicami in obsegi v Excelu VBA.
  • Delo z delovnimi listi v VBA.
  • Delo z delovnimi zvezki v VBA.
  • Uporaba zank v Excelu VBA.
  • Razumevanje podatkovnih tipov Excel VBA (spremenljivke in konstante)
  • Kako ustvariti in uporabljati osebni makro delovni zvezek v Excelu.
  • Primeri uporabnih Excelovih makro kod.
  • Uporaba za naslednjo zanko v Excelu VBA.
  • Dogodki Excel VBA - enostaven (in popoln) vodnik.
  • Kako zagnati makro v Excelu-Popoln vodnik po korakih.
  • Kako ustvariti in uporabiti dodatek Excel

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

wave wave wave wave wave