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:
- 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.
- Potaknuti: Ovo je poruka koju želite prikazati. Ovaj prostor možete koristiti za pisanje nekoliko redaka ili čak prikaz tablica/podataka ovdje.
- 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.
- 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.