Vjerojatno ste upoznati s funkcijom VBA MsgBox. Funkcija MsgBox, koja prihvaća argumente prikazane u nastavku, zgodna je za prikaz informacija i dobivanje jednostavnog korisničkog unosa. Može dobiti korisnički unos jer je funkcija. Funkcija, kao što vjerojatno znate, vraća vrijednost. U slučaju funkcije MsgBox, koristi dijaloški okvir za dobivanje vrijednosti koju vraća. Nastavite čitati da biste vidjeli kako točno radi.
Argument |
Što Utječe |
Potaknuti |
Tekst Excel prikazuje se u okviru za poruke |
Gumbi |
Broj koji određuje koji se gumbi (zajedno s kojom ikonom)
pojavljuju u okviru za poruke (opcionalno) |
Titula |
Tekst koji se pojavljuje u naslovnoj traci okvira za poruke
(izborno) |
Evo pojednostavljene verzije sintakse funkcije MsgBox:
MsgBox(prompt[, gumbi][, naslov])
Prikaz jednostavnog okvira za poruke
Funkciju MsgBox možete koristiti na dva načina:
-
Da jednostavno prikažete poruku korisniku: U ovom slučaju, nije vas briga za rezultat koji vraća funkcija.
-
Da biste dobili odgovor od korisnika: U ovom slučaju vam je stalo do rezultata koji vraća funkcija. Rezultat ovisi o gumbu koji korisnik klikne.
Ako funkciju MsgBox koristite samu, nemojte uključivati zagrade oko argumenata. Sljedeći primjer jednostavno prikazuje poruku i ne vraća rezultat. Kada se prikaže poruka, kod se zaustavlja dok korisnik ne klikne OK.
Sub MsgBoxDemo()
MsgBox "Kliknite OK za početak ispisa."
Listovi(“Rezultati”).Ispis
Kraj Sub
U nastavku pogledajte kako izgleda ovaj okvir s porukom. U tom slučaju, ispis počinje kada korisnik klikne OK. Primjećujete li da ne postoji način da otkažete ispis? Nastavite čitati kako biste saznali kako to popraviti.
Jednostavan okvir za poruke.
Dobivanje odgovora iz okvira za poruke
Ako prikažete okvir s porukom koji ima više od gumba U redu, vjerojatno ćete htjeti znati koji gumb korisnik klikne. Imaš sreće. Funkcija MsgBox može vratiti vrijednost koja predstavlja koji je gumb kliknut. Rezultat funkcije MsgBox možete dodijeliti varijabli.
U sljedećem kodu koriste se neke ugrađene konstante koje olakšavaju rad s vrijednostima koje vraća MsgBox:
Pod GetAnswer()
Dim Ans As Long
Odgovor = MsgBox(“Početak ispisivanja?”, vbYesNo)
Odaberite Case Ans
Slučaj vbDa
ActiveSheet.PrintOut
Slučaj vbbr
MsgBox “Ispis otkazan”
Kraj Odaberite
Kraj Sub
Konstantno |
Vrijednost |
Što to radi |
vbOKOnly |
0 |
Prikazuje samo gumb OK. |
vbOKOdustani |
1 |
Prikazuje tipke OK i Cancel. |
vbAbortRetryIgnore |
2 |
Prikazuje gumbe Prekini, Ponovi i Zanemari. |
vbDaNeOdustani |
3 |
Prikazuje tipke Da, Ne i Odustani. |
vbDaNe |
4 |
Prikazuje tipke Da i Ne. |
vbPokušajOdustani |
5 |
Prikazuje gumbe Pokušaj ponovno i Odustani. |
vbKritično |
16 |
Prikazuje ikonu kritične poruke. |
vbQuestion |
32 |
Prikazuje ikonu upita upozorenja. |
vbUsklik |
48 |
Prikazuje ikonu poruke upozorenja. |
vbInformacije |
64 |
Prikazuje ikonu informativne poruke. |
vbDefaultButton1 |
0 |
Prvi gumb je zadani. |
vbDefaultButton2 |
256 |
Drugi gumb je zadani. |
vbDefaultButton3 |
512 |
Treći gumb je zadan. |
vbDefaultButton4 |
768 |
Četvrti gumb je zadan. |
Provjerite kako to izgleda. Kada izvršite ovu proceduru, varijabli Ans dodjeljuje se vrijednost ili vbYes ili vbNo, ovisno o tome koji gumb korisnik klikne. Naredba Select Case koristi vrijednost Ans da odredi koju radnju kod treba izvesti.
Jednostavan okvir za poruke, s dva gumba.
Također možete koristiti rezultat funkcije MsgBox bez upotrebe varijable, kao što pokazuje sljedeći primjer:
Pod GetAnswer2()
Ako je MsgBox(“Pokrenuti ispis?”, vbYesNo) = vbYes Onda
' ...[kod ako se klikne Da]...
Drugo
' ...[kod ako se ne klikne Da]...
Završi ako
Kraj Sub