Fleksibilnost argumenta VBA gumba olakšava prilagođavanje vaših Excel okvira za poruke. Možete odabrati koje gumbe želite prikazati, odrediti hoće li se ikona pojaviti i odlučiti koji je gumb zadani (zadani gumb se "klikne" ako korisnik pritisne Enter).
Možete koristiti ugrađene konstante za argument gumba. Ako želite, možete koristiti vrijednost umjesto konstante (ali korištenje ugrađenih konstanti je puno lakše).
Da biste koristili više od jedne od ovih konstanti kao argument, samo ih povežite s + operatorom. Na primjer, da biste prikazali okvir s porukom s gumbima Da i Ne i ikonom uzvika, koristite sljedeći izraz kao drugi argument MsgBox:
vbYesNe + vbExclamation
Ili, ako više volite da vaš kod bude manje razumljiv, upotrijebite vrijednost 52 (to jest, 4 + 48).
Sljedeći primjer koristi kombinaciju konstanti za prikaz okvira s porukom s gumbom Da i gumbom Ne (vbYesNo), kao i ikonom upitnika (vbQuestion). Konstanta vbDefaultButton2 označava drugi gumb (Ne) kao zadani gumb — odnosno gumb koji se klikne ako korisnik pritisne Enter. Radi jednostavnosti, ove konstante se dodjeljuju varijabli Config, a zatim koriste Config kao drugi argument u funkciji MsgBox:
Pod GetAnswer3()
Dim Config As Long
Dim Ans As Integer
Konfig = vbYesNo + vbQuestion + vbDefaultButton2
Odgovor = MsgBox("Obraditi mjesečno izvješće?", Config)
Ako je Ans = vbYes, onda RunReport
Kraj Sub
Provjerite okvir s porukom koji Excel prikazuje kada izvršite proceduru GetAnswer3. Ako korisnik klikne gumb Da, rutina izvršava proceduru pod nazivom RunReport. Ako korisnik klikne gumb Ne (ili pritisne Enter), rutina se završava bez radnje. Budući da je argument title izostavljen u funkciji MsgBox, Excel koristi zadani naslov, Microsoft Excel.
Argument gumba funkcije MsgBox određuje što se pojavljuje u okviru s porukom.
Sljedeća rutina pruža još jedan primjer korištenja funkcije MsgBox:
Pod GetAnswer4()
Zatamnjena poruka kao niz, naslov kao niz
Dim Config As Integer, Ans As Integer
Poruka = "Želite li obraditi mjesečno izvješće?"
Poruka = Poruka & vbNewLine & vbNewLine
Poruka = Poruka & "Obrada mjesečnog izvješća će "
Poruka = Poruka & „tražite otprilike 15 minuta. To "
Poruka = Poruka & "generirat će izvješće od 30 stranica za "
Poruka = Poruka & "svi prodajni uredi za trenutnu"
Poruka = Poruka & "mjesec".
Naziv = "XYZ Marketinška tvrtka"
Konfig = vbYesNo + vbQuestion
Ans = MsgBox (Poruka, Konfiguracija, Naslov)
Ako je Ans = vbYes, onda RunReport
Kraj Sub
Ovaj primjer pokazuje učinkovit način određivanja duže poruke u okviru za poruke. Varijabla (Msg) i operator konkatenacije (&) koriste se za izgradnju poruke u nizu iskaza. Konstanta vbNewLine umeće znak prijeloma retka koji započinje novi redak (koristite ga dvaput da umetnete prazan redak). Argument title koristi se za prikaz drugog naslova u okviru za poruke. Ovo je okvir s porukom koji Excel prikazuje kada izvršite ovaj postupak.
Ovaj dijaloški okvir, koji prikazuje funkcija MsgBox, prikazuje naslov, ikonu i dva gumba.
Možete koristiti konstante (kao što su vbYes i vbNo) za povratnu vrijednost funkcije MsgBox. Evo još nekoliko konstanti.
Konstantno |
Vrijednost |
Što to znači |
vbOK |
1 |
Korisnik je kliknuo OK. |
vbCancel |
2 |
Korisnik je kliknuo Odustani. |
vbPrekini |
3 |
Korisnik je kliknuo Prekini. |
vbPonovi |
4 |
Korisnik je kliknuo Pokušaj ponovo. |
vbZanemari |
5 |
Korisnik je kliknuo Zanemari. |
vbDa |
6 |
Korisnik je kliknuo Da. |
vbbr |
7 |
Korisnik je kliknuo Ne. |
I to je gotovo sve što trebate znati o funkciji MsgBox. No, okvire za poruke koristite oprezno. Obično nema razloga za prikazivanje okvira s porukama koji nemaju svrhu. Na primjer, ljudi se obično iznerviraju kada svaki dan vide okvir s porukom koji glasi Dobro jutro. Hvala što ste učitali radnu knjigu Projekcija proračuna.