Excel VBA MsgBox (okvir za poruke) - sve što trebate znati!

U Excelu VBA možete koristiti funkciju MsgBox za prikaz okvira s porukom (kao što je prikazano u nastavku):

MsgBox nije ništa drugo nego dijaloški okvir pomoću kojeg možete obavijestiti svoje korisnike prikazivanjem prilagođene poruke ili dobiti neke osnovne unose (poput Da/Ne ili U redu/Otkaži).

Dok se prikazuje dijaloški okvir MsgBox, vaš VBA kôd je zaustavljen. Morate kliknuti bilo koji gumb u MsgBoxu za pokretanje preostalog VBA koda.

Napomena: U ovom vodiču koristit ću riječi okvir za poruke i MsgBox naizmjenično. Prilikom rada s programom Excel VBA uvijek morate koristiti MsgBox.

Anatomija VBA MsgBox -a u Excelu

Okvir za poruke ima sljedeće dijelove:

  1. Titula: Ovo se obično koristi za prikaz o čemu se radi u okviru za poruku. Ako ništa ne navedete, prikazat će se naziv aplikacije - što je u ovom slučaju Microsoft Excel.
  2. Potaknuti: Ovo je poruka koju želite prikazati. Ovaj prostor možete koristiti za pisanje nekoliko redaka ili čak prikaz tablica/podataka ovdje.
  3. Gumb (i): Iako je OK zadani gumb, možete ga prilagoditi tako da prikazuje gumbe poput Da/Ne, Da/Ne/Otkaži, Pokušaj ponovo/Zanemari itd.
  4. Ikona zatvaranja: Okvir s porukom možete zatvoriti klikom na ikonu zatvori.

Sintaksa VBA MsgBox funkcije

Kao što sam spomenuo, MsgBox je funkcija i ima sintaksu sličnu drugim VBA funkcijama.

MsgBox (upit [, gumbi] [, naslov] [, datoteka pomoći, kontekst])

  • potaknuti - Ovo je potreban argument. Prikazuje poruku koju vidite u MsgBoxu. U našem primjeru tekst "Ovo je uzorak MsgBox -a" je "upit". U upitu možete koristiti do 1024 znaka, a možete ga koristiti i za prikaz vrijednosti varijabli. U slučaju da želite prikazati upit koji ima više redaka, to možete učiniti i vi (više o tome kasnije u ovom vodiču).
  • [gumbi] - Određuje koji su gumbi i ikone prikazani u MsgBoxu. Na primjer, ako koristim vbOkOnly, prikazat će se samo gumb OK, a ako koristim vbOKCancel, prikazat će se i gumbi OK i Odustani. Kasnije u ovom vodiču ću pokriti različite vrste gumba.
  • [titula] - Ovdje možete odrediti koji natpis želite u dijaloškom okviru poruke. To je prikazano u naslovnoj traci MsgBox -a. Ako ništa ne navedete, prikazat će se naziv aplikacije.
  • [datoteka pomoći] - Možete odrediti datoteku pomoći kojoj se može pristupiti kada korisnik klikne gumb Pomoć. Gumb za pomoć pojavit će se samo ako za njega koristite kôd gumba. Ako koristite datoteku pomoći, morate navesti i kontekstni argument.
  • [kontekst] - To je numerički izraz koji je broj konteksta pomoći dodijeljen odgovarajućoj temi pomoći.

Ako ste tek počeli s konceptom Msgbox -a, zanemarite argumente [datoteka pomoći] i [kontekst]. Rijetko sam vidio da se koriste.

Napomena: Svi argumenti u uglatim zagradama su neobavezni. Samo je argument 'promptno' obvezan.

Konstante gumba Excel VBA MsgBox (primjeri)

U ovom odjeljku pokriti ću različite vrste gumba koje možete koristiti s VBA MsgBox -om.

Prije nego što vam pokažem VBA kôd i kako izgleda MsgBox, evo tablice koja prikazuje sve različite konstante gumba koje možete koristiti.

Gumb konstanta Opis
vbOKSamo Prikazuje samo gumb OK
vbOKOdustani Prikazuje gumbe U redu i Odustani
vbAbortRetryIgnore Prikazuje gumbe Prekini, Ponovi i Zanemari
vbDaNe Prikazuje gumbe Da i Ne
vbDaNeOdustani Prikazuje gumbe Da, Ne i Odustani
vbRetryCancel Prikazuje gumbe Ponovi i Otkaži
vbMsgBoxHelpButton Prikazuje gumb za pomoć. Da bi ovo funkcioniralo, trebate koristiti argumente pomoći i konteksta u funkciji MsgBox
vbDefaultButton1 Prvi gumb čini zadanim. Možete promijeniti broj kako biste promijenili zadani gumb. Na primjer, vbDefaultButton2 drugi gumb čini zadanim

Napomena: Dok pregledavate primjere stvaranja različitih gumba, možda ćete se zapitati koja je svrha imati te gumbe ako nemaju utjecaja na kôd.

To radi! Na temelju odabira možete kodirati što želite da kôd radi. Na primjer, ako odaberete U redu, kôd bi se trebao nastaviti, a ako pritisnete Odustani, kôd bi se trebao zaustaviti. To se može učiniti korištenjem varijabli i dodjeljivanjem vrijednosti okvira s porukom varijabli. O tome ćemo govoriti u kasnijim odjeljcima ovog vodiča.

Pogledajmo sada neke primjere kako se različiti gumbi mogu prikazati u MsgBoxu i kako izgleda.

Gumbi MsgBox - vbOKOnly (zadano)

Ako koristite samo upit i ne navedete nijedan argument, dobit ćete zadani okvir za poruku kao što je prikazano u nastavku:

Ispod je kôd koji će dati ovaj okvir s porukom:

Pod zadanoMsgBox () MsgBox "Ovo je primjer okvira" Završi pod

Imajte na umu da tekstualni niz mora biti u dvostrukim navodnicima.

Također možete koristiti tipku konstanta vbOKOnly, ali čak i ako ništa ne navedete, uzima se kao zadana.

Gumbi za poruke - OK i Odustani

Ako želite prikazati samo OK i gumb Odustani, morate koristiti konstantu vbOKCancel.

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

Gumbi MsgBox - Prekini, Pokušaj ponovo i Zanemari

Možete koristiti konstantu "vbAbortRetryIgnore" za prikaz gumba Prekini, Ponovi i Zanemari.

Sub MsgBoxAbortRetryIgnore () MsgBox "Što želite učiniti?", VbAbortRetryIgnore End Sub

Gumbi MsgBox - Da i Ne

Za prikaz gumba Da i Ne možete koristiti konstantu ‘vbYesNo’.

Sub MsgBoxYesNo () MsgBox "Trebamo li stati?", VbYesNo End Sub

Gumbi MsgBox - Da, Ne i Otkaži

Pomoću konstante ‘vbYesNoCancel’ možete prikazati gumbe Da, Ne i Odustani.

Sub MsgBoxYesNoCancel () MsgBox "Trebamo li stati?", VbYesNoCancel End Sub

Gumbi MsgBox - Pokušajte ponovno i otkažite

Pomoću konstante ‘vbRetryCancel’ možete prikazati gumbe Ponovi i Odustani.

Sub MsgBoxRetryCancel () MsgBox "Što želite sljedeće učiniti?", VbRetryCancel End Sub

Gumbi MsgBox - gumb za pomoć

Za prikaz gumba za pomoć možete koristiti konstantu "vbMsgBoxHelpButton". Možete ga koristiti s drugim konstantama gumba.

Sub MsgBoxRetryHelp () MsgBox "Što želite sljedeće učiniti?", VbRetryCancel + vbMsgBoxHelpButton End Sub

Imajte na umu da smo u ovom kodu kombinirali dvije različite konstante gumba (vbRetryCancel + vbMsgBoxHelpButton). Prvi dio prikazuje tipke Ponovi i Odustani, a drugi dio prikazuje gumb Pomoć.

Gumbi MsgBox - Postavljanje zadanog gumba

Pomoću konstante ‘vbDefaultButton1’ možete postaviti prvi gumb kao zadani. To znači da je gumb već odabran i ako pritisnete enter, izvršava taj gumb.

Ispod je kôd koji će drugi gumb (gumb 'Ne') postaviti kao zadani.

Sub MsgBoxOKCancel () MsgBox "Što želite sljedeće učiniti?", VbDaNoCancel + vbDefaultButton2 Završi pod

U većini slučajeva krajnji lijevi gumb zadani je gumb. Možete odabrati druge gumbe pomoću vbDefaultButton2, vbDefaultButton3 i vbDefaultButton4.

Excel VBA MsgBox ikone Konstante (primjeri)

Osim gumba, možete prilagoditi i ikone prikazane u dijaloškom okviru MsgBox. Na primjer, možete imati crvenu kritičnu ikonu ili plavu ikonu informacija.

Dolje je tablica koja prikazuje kôd koji će prikazati odgovarajuću ikonu.

Ikona Konstant Opis
vbCritical Prikazuje ikonu kritične poruke
vbQuestion Prikazuje ikonu pitanja
vbUzvik Prikazuje ikonu poruke upozorenja
vbInformation Prikazuje ikonu informacija

Ikone MsgBox - kritične

Ako želite prikazati kritičnu ikonu u svom MsgBoxu, upotrijebite vbCritical konstantu. Ovo možete koristiti zajedno s drugim konstantama gumba (stavljanjem znaka + između kodova).

Na primjer, ispod je kôd koji će prikazati zadani gumb OK s kritičnom ikonom.

Sub MsgBoxCriticalIcon () MsgBox "Ovo je okvir za uzorke", vbCritical End Sub

Ako želite prikazati kritičnu ikonu s gumbima Da i Ne, upotrijebite sljedeći kôd:

Sub MsgBoxCriticalIcon () MsgBox "Ovo je okvir za uzorke", vbYesNo + vbCritical End Sub

Ikone MsgBox - Pitanje

Ako želite prikazati kritičnu ikonu u svom MsgBoxu, upotrijebite konstantu vbQuestion.

Sub MsgBoxQuestionIcon () MsgBox "Ovo je okvir za uzorke", vbYesNo + vbQuestion End Sub

Ikone MsgBox - Usklik

Ako želite prikazati ikonu usklika u svom MsgBoxu, upotrijebite konstantu vbExclamation.

Sub MsgBoxExclamationIcon () MsgBox "Ovo je okvir za uzorke", vbYesNo + vbExclamation End Sub

Ikone MsgBox - Informacije

Ako želite prikazati ikonu informacija u svom MsgBoxu, upotrijebite konstantu vbInformation.

Sub MsgBoxInformationIcon () MsgBox "Ovo je okvir za uzorke", vbYesNo + vbInformation End Sub

Prilagođavanje naslova i upita u MsgBoxu

Kada koristite MsgBox, možete prilagoditi naslov i poruke upita.

Do sada smo u primjeru koji smo vidjeli koristili Microsoft Excel kao naslov. U slučaju da ne navedete argument naslova, MsgBox automatski koristi naslov aplikacije (što je u ovom slučaju bio Microsoft Excel).

Naslov možete prilagoditi tako da ga navedete u kodu kao što je prikazano u nastavku:

Sub MsgBoxInformationIcon () MsgBox "Želite li nastaviti?", VbYesNo + vbQuestion, "Korak 1 od 3" Završetak pod

Slično, možete i prilagoditi poruku upita.

U poruku s upitom možete dodati i prijelome redaka.

U donjem kodu dodao sam prijelom retka koristeći 'vbNewLine'.

Sub MsgBoxInformationIcon () MsgBox "Želite li nastaviti?" & vbNewLine & "Kliknite Da za nastavak", vbYesNo + vbQuestion, "Korak 1 od 3" Završi pod

Također možete upotrijebiti znak za vraćanje nosača - Chr (13) - ili unos retka - Chr (10) za umetanje novog retka u poruku upita.

Imajte na umu da samo retku poruke možete dodati novi redak, a ne i naslov.

Dodjeljivanje vrijednosti MsgBox varijabli

Do sada smo vidjeli primjere gdje smo stvorili okvire poruka i prilagodili gumbe, ikone, naslov i upit.

Međutim, klik na gumb nije učinio ništa.

S funkcijom MsgBox u Excelu možete odlučiti što želite učiniti kada korisnik klikne određeni gumb. A to je moguće jer svaki gumb ima pridruženu vrijednost.

Dakle, ako kliknem na gumb Da, funkcija MsgBox vraća vrijednost (6 ili konstantu vbYes) koju mogu koristiti u svom kodu. Slično, ako korisnik odabere gumb Ne, vraća drugu vrijednost ((7 ili konstantu vbNo)) koju mogu koristiti u kodu.

Dolje je tablica koja prikazuje točne vrijednosti i konstantu koju vraća funkcija MsgBox. Ne morate ih zapamtiti, samo budite svjesni toga i možete koristiti konstante koje su lakše koristiti.

Klik na gumb Konstantno Vrijednost
U redu vbOk 1
Otkazati vbOdustani 2
Prekid vbAbort 3
Pokušajte ponovo vbRetry 4
Zanemariti vbIgnore 5
Da vbDa 6
Ne vbNo 7

Pogledajmo sada kako možemo kontrolirati VBA makro kôd na temelju gumba koji korisnik klikne.

U donjem kodu, ako korisnik klikne Da, prikazuje se poruka "Kliknuli ste na Da", a ako korisnik klikne Ne, prikazuje se "Vi ste kliknuli Ne".

Sub MsgBoxInformationIcon () Rezultat = MsgBox ("Želite li nastaviti?", VbYesNo + vbQuestion) Ako je Result = vbYes Zatim MsgBox "Kliknuli ste Da" Inače: MsgBox "Kliknuli ste Ne" End If End Sub

U gornjem kodu dodijelio sam vrijednost funkcije MsgBox varijabli Result. Kada pritisnete gumb Da, varijabla Rezultat dobiva vbYes konstantu (ili broj 6), a kada pritisnete Ne, varijabla Rezultat dobiva konstantu vbNo (ili broj 7).

Zatim sam upotrijebio konstrukciju If Then Else za provjeru drži li varijabla Result vrijednost vbYes. Ako se to dogodi, prikazuje upit "Kliknuli ste na Da", inače prikazuje "Kliknuli ste na Ne".

Isti koncept možete koristiti za pokretanje koda ako korisnik klikne Da i izađe iz podmreže kada klikne Ne.

Napomena: Kad dodijelite izlaz MsgBox varijabli, argumente funkcije MsgBox morate staviti u zagrade. Na primjer, u retku Rezultat = MsgBox ("Želite li nastaviti?", VbDaNe + vbQuestion), možete vidjeti da su argumenti unutar zagrada.

Ako želite dodatno kopati u funkciji okvira za poruke, evo službenog dokumenta o tome.

Možda će vam se svidjeti i sljedeći Excel VBA vodiči:

  • Excel VBA Split funkcija.
  • Excel VBA InStr funkcija.
  • Rad s ćelijama i rasponima u Excelu VBA.
  • Rad s radnim listovima u VBA -i.
  • Rad s radnim bilježnicama u VBA -i.
  • Korištenje petlji u Excelu VBA.
  • Razumijevanje tipova podataka Excel VBA (varijable i konstante)
  • Kako stvoriti i koristiti osobnu makro radnu knjigu u Excelu.
  • Primjeri korisnih Excel makro kodova.
  • Korištenje za sljedeću petlju u Excelu VBA.
  • Excel VBA događaji - jednostavan (i potpun) vodič.
  • Kako pokrenuti makronaredbu u Excelu-potpuni vodič korak po korak.
  • Kako stvoriti i koristiti dodatak Excel.

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave