Da Ne Okvir za poruke (Msgbox) - Primjeri VBA koda

Ovaj vodič će pokriti kako koristiti funkciju VBA MsgBox za prikaz okvira za poruke korisnicima (uključujući YesNo Messagebox). Možda će vas zanimati i naš članak o InputBoxima.

VBA MsgBox funkcija

U VBA -u je jednostavno prikazati jednostavan MsgBox:

1 MsgBox "Ovo je okvir za poruke"

Međutim, možete učiniti puno više od prikaza jednostavnog okvira s porukom OK. Pogledajmo brzo komplicirani primjer prije nego što uđemo u pojedinosti …

VBA DaNe Okvir za poruke

U nastavku ćemo stvoriti okvir za poruke sa:

  • Naslov "Naslov okvira s porukama" i upit "Tekst"
  • Ikona upitnika
  • Da / Ne opcije umjesto jednostavnog "OK"
  • Zadani gumb = "Ne"
123 Zatamnjen odgovor Kao cijeli brojanswer = MsgBox ("Tekst", vbQuestion + vbDaNe + vbDefaultButton2, "Naslov okvira s porukama")

Okvir za poruke vratit će vbYes ili vbNo, ovisno o izboru korisnika. Zatim možete izvršiti različite radnje ovisno o izboru:

12345 Ako je odgovor = vbDaMsgBox "Da"DrugoMsgBox "Ne"Završi ako

U sljedećem odjeljku pokazat ćemo vam sve opcije koje su vam dostupne pri stvaranju okvira s porukama. Zatim ćemo vas upoznati sa sintaksom funkcije MsgBox i na kraju pregledati ostale primjere okvira s porukama.

Opcije okvira za poruke VBA

Pogledajte donju sliku. Ovdje ćete vidjeti (gotovo) sve opcije koje su vam dostupne pri stvaranju okvira s porukama. Obratite pažnju na ikone i različite gumbe.

Ovo je snimak zaslona “MessageBox Builder” iz našeg Premium VBA dodatka: AutoMacro. MessageBox Builder omogućuje vam da brzo dizajnirate željeni okvir za poruke i umetnete kôd u svoj kodni modul. Sadrži i mnoge druge graditelje kodova, opsežnu biblioteku kodova VBA i niz alata za kodiranje. To mora imati svaki VBA programer.

Sintaksa funkcije MsgBox

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

prompt (obavezno) - Ovo je primarni tekst okvira poruka.

gumbi - Odaberite gumbe za prikaz. Ako je izostavljeno, 'U redu'. Ovdje također možete odrediti koju ikonu želite prikazati i zadani gumb.

titula - Naslov pri vrhu okvira s porukom. Ako je izostavljeno, prikazuje se naziv trenutne aplikacije (npr. Microsoft Excel).

datoteka pomoći - Odredite datoteku pomoći kojoj se može pristupiti kada korisnik klikne gumb ‘Pomoć’. Ako je navedeno, tada morate dodati i kontekst (ispod)

kontekst - Numerički izraz koji predstavlja broj konteksta pomoći dodijeljen odgovarajućoj temi pomoći.

Vjerojatno možete zanemariti datoteku pomoći i argumente konteksta. Nikada ih nisam vidio da se koriste.

Prilagodite naslov okvira i okvir okvira za poruke

Funkcija MsgBox omogućuje vam da prilagodite naslov i poruke upita na sljedeći način:

1 Msgbox "Odziv" ,, "Naslov"

Još jedan primjer:

123 Pod MsgBoxPromptTitle ()MsgBox "Korak 1 dovršen. Pritisnite U redu da biste pokrenuli korak 2." ,, "Korak 1 od 5"Kraj podm

Važno! Morate zapamtiti da svoj tekst okružite citatima.

MessageBox LineBreaks

Također možete dodati prijelome redaka u upite u okvir s porukom s "vbNewLine".

123 Pod MsgBoxPromptTitle_NewLine ()MsgBox "Korak 1 dovršen." & vbNewLine & "Pritisnite U redu za pokretanje 2. koraka", "Korak 1 od 5"Kraj podm

Primijetite da koristimo simbol & za spajanje teksta. Više o korištenju & s tekstom i drugim opcijama za umetanje prijeloma reda možete saznati u našem članku o spajanju teksta.

Ikone MsgBox

VBA vam omogućuje da dodate jednu od četiri unaprijed izgrađene ikone u svoje okvire za poruke:

Ikona Konstant Ikona
vbInformation
vbCritical
vbQuestion
vbUzvik

Konstantnu ikonu treba staviti unutar argumenta gumba:

123 Sub MsgBoxQuestionIcon ()MsgBox "Primjer pitanja", vbQuestionKraj podm

Ovo će generirati zadani okvir s porukom "U redu" s ikonom pitanja:

Primijetite kako će vam VBA Editor prilikom pisanja pokazati opcije koje su vam dostupne:

Ovo je korisno jer se ne morate sjećati točne sintakse ili naziva ikona ili gumba.

Sada ćemo demonstrirati svaku ikonu okvira za poruke:

Ikone MsgBox - Informacije

123 Sub MsgBoxInformationIcon ()MsgBox "Primjer informacija", vbInformationKraj podm

Ikone MsgBox - kritične

123 Sub MsgBoxCriticalIcon ()MsgBox "Kritični primjer", vbCriticalKraj podm

Ikone MsgBox - Pitanje

123 Sub MsgBoxQuestionIcon ()MsgBox "Primjer pitanja", vbQuestionKraj podm

Ikone MsgBox - Usklik

123 Sub MsgBoxExclamationIcon ()MsgBox "Primjer uzvika", vbExclamationKraj podm

U nastavku ćemo govoriti o generiranju okvira s porukama s različitim rasporedom gumba. Ako odaberete drugu vrstu okvira za poruke, morat ćete dodati tip ikone nakon gumba pomoću znaka "+":

123 Sub MsgBoxQuestionIcon ()MsgBox "Želite li nastaviti?", VbOKCancel + vbQuestionKraj podm

MsgBox varijable

Do sada smo radili prvenstveno sa zadanim okvirom za poruku 'OK'. Okvir s porukom OK ima samo jednu opciju: Pritiskom na ‘OK’ omogućuje se nastavak koda. Međutim, možete odrediti i druga grupiranja gumba: U redu / Odustani, Da / Ne itd.

U tom slučaju želite izvršiti različite radnje ovisno o pritisnutom gumbu. Pogledajmo primjer.

Ovo je okvir za poruku koji ćemo generirati:

Ovo je cijeli kôd (dalje ćemo ga razložiti):

123456789101112 Pod MsgBoxVariable ()Zatamnjen odgovor Kao cijeli brojanswer = MsgBox ("Želite li nastaviti?", vbQuestion + vbDaNe)Ako je odgovor = vbDaMsgBox "Da"DrugoMsgBox "Ne"Završi akoKraj podm

Prvo dodjeljujemo izlaz okvira poruka cjelobrojnoj varijabli.

123 Zatamnjen odgovor Kao cijeli brojanswer = MsgBox ("Želite li nastaviti?", vbQuestion + vbDaNe)

Zatim koristimo If-Else da odredimo što učiniti na temelju pritiska na gumb:

12345 Ako je odgovor = vbDaMsgBox "Da"DrugoMsgBox "Ne"Završi ako

Funkcija MsgBox vraća cijelu vrijednost (između 1-7) pa definiramo varijablu kao cijeli broj. Međutim, umjesto upućivanja na cijeli broj, možete se pozvati na konstantu (npr. VbOK, vbCancel itd.). Pogledajte ovu tablicu kako biste vidjeli sve mogućnosti:

Dugme 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

Sada ćemo demonstrirati svako grupiranje gumba:

OK okvir za poruke - vbOKSamo

Ovo je standardni VBA okvir za poruke.

123456 Pod MsgBox_OKSamo ()Zatamnjen odgovor Kao cijeli brojanswer = MsgBox ("U redu samo primjer", vbOKOnly)Kraj podm

OK Otkaži okvir s porukom - vbOKOdustani

123456789101112 Sub MsgBox_OKOdustani ()Zatamnjen odgovor Kao cijeli brojanswer = MsgBox ("OK Otkaži primjer", vbOKCancel)Ako je odgovor = vbOK TadaMsgBox "U redu"DrugoMsgBox "Otkaži"Završi akoKraj podm

Da Ne Okvir za poruke - vbDaNe

123456789101112 Pod MsgBox_DaNe ()Zatamnjen odgovor Kao cijeli brojanswer = MsgBox ("Da Ne Primjer", vbYesNo)Ako je odgovor = vbDaMsgBox "Da"DrugoMsgBox "Ne"Završi akoKraj podm

Da Ne Otkaži okvir s porukom - vbDaNoOdustani

1234567891011121314 Pod MsgBox_DaNeOpostavi ()Zatamnjen odgovor Kao cijeli brojanswer = MsgBox ("Da Ne Otkaži primjer", vbYesNoCancel)Ako je odgovor = vbDaMsgBox "Da"Inače ako je odgovor = vbNo TadaMsgBox "Ne"DrugoMsgBox "Otkaži"Završi akoKraj podm

Okvir za poruku Zanemari ponovno pokušaj zanemariti - vbAbortRetryIgnore

1234567891011121314 Sub MsgBox_AbortRetryIgnore ()Zatamnjen odgovor Kao cijeli brojanswer = MsgBox ("Primjer zanemarivanja ponovnog pokušaja zanemarivanja", vbAbortRetryIgnore)Ako je odgovor = vbAbort TadaMsgBox "Prekini"Inače if answer = vbRetry thenMsgBox "Pokušaj ponovno"DrugoMsgBox "Zanemari"Završi akoKraj podm

Pokušaj ponovno otkazati okvir za poruku - vbRetryCancel

123456789101112 Sub MsgBox_RetryCancel ()Zatamnjen odgovor Kao cijeli brojanswer = MsgBox ("Primjer ponovnog otkazivanja", vbRetryCancel)Ako je odgovor = vbRetry thenMsgBox "Pokušaj ponovno"DrugoMsgBox "Otkaži"Završi akoKraj podm

Primjeri VBA MessageBox -a

Potvrda okvira s porukama prije pokretanja makronaredbe

Ovaj će kôd prikazati okvir Da poruka prije pozivanja makronaredbe. Ako se klikne Da, makro se poziva, ako se klikne Ne, Makro se ne pokreće.

12345678 Sub Msgbox_BeforeRunning ()Zatamnjen odgovor Kao cijeli brojanswer = MsgBox ("Želite li pokrenuti Macro1?", vbQuestion + vbDaNe)Ako je odgovor = vbDa Pozovite Makro1Kraj podm

Da / Ne okvir s porukom - izađite iz podm

Ovdje ćemo s korisnikom potvrditi hoćemo li nastaviti izvoditi makronaredbu. Ako se klikne Ne, kôd će izaći iz podmetre, u protivnom će se postupak nastaviti.

12345678910 Sub Msgbox_BeforeRunning ()Zatamnjen odgovor Kao cijeli brojanswer = MsgBox ("Želite li nastaviti?", vbQuestion + vbDaNe)Ako je odgovor = vbNo Zatim izađite iz podm»Neki KodeksKraj podm

VBA okvir s porukama u programu Access VBA

Svi gornji primjeri rade potpuno isto u Access VBA kao i u Excel VBA.

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

wave wave wave wave wave