Tämä opetusohjelma kattaa kuinka käyttää VBA MsgBox -toimintoa viestien laatikoiden näyttämiseen käyttäjille (mukaan lukien YesNo Messagebox). Saatat myös olla kiinnostunut InputBoxes -artikkelistamme.
VBA MsgBox -toiminto
VBA: ssa on helppo näyttää yksinkertainen MsgBox:
1 | MsgBox "Tämä on viestilaatikko" |
Voit kuitenkin tehdä paljon enemmän kuin näyttää yksinkertaisen OK -viestiruudun. Katsotaanpa nopeasti monimutkaista esimerkkiä ennen kuin menemme yksityiskohtiin …
VBA Kyllä Ei viestilaatikkoa
Alla luomme viestiruudun, jossa on:
- Otsikko "Viestiruudun otsikko" ja kehote "Teksti"
- Kysymyskuvake
- Kyllä / Ei vaihtoehtoja yksinkertaisen "OK" sijaan
- Oletuspainike = ’Ei’
123 | Hämärä vastaus kokonaislukunaanswer = MsgBox ("Teksti", vbQuestion + vbYesNo + vbDefaultButton2, "Message Box Title") |
Viestiruutu palauttaa vbYes tai vbNo käyttäjän valinnan mukaan. Tämän jälkeen voit suorittaa erilaisia toimintoja valinnan mukaan:
12345 | Jos vastaus = vbKylläMsgBox "Kyllä"MuuMsgBox "Ei"Loppu Jos |
Seuraavassa osiossa näytämme sinulle kaikki vaihtoehdot, joita voit käyttää viestiruutujen luomiseen. Sitten esittelemme sinulle MsgBox -toiminnon syntaksin ja lopuksi käymme läpi muita esimerkkejä viestiruudusta.
VBA -viestilaatikon asetukset
Katso alla olevaa kuvaa. Täällä näet (melkein) kaikki käytettävissä olevat vaihtoehdot, kun luot viestilaatikoita. Huomaa kuvakkeet ja eri painikkeet.
Tämä on kuvakaappaus ”MessageBox Builderista” Premium VBA -laajennuksestamme: AutoMacro. MessageBox Builderin avulla voit suunnitella nopeasti haluamasi viestilaatikon ja lisätä koodin koodimoduuliin. Se sisältää myös monia muita koodinrakentajia, laajan VBA -koodikirjaston ja valikoiman koodaustyökaluja. Se on pakollinen jokaiselle VBA-kehittäjälle.
MsgBox -toiminnon syntaksi
MsgBox (kehote [, painikkeet] [, otsikko] [, ohjetiedosto, konteksti])
kehote (pakollinen) - Tämä on ensisijainen viestiruudun teksti.
painikkeita - Valitse näytettävät painikkeet. Jos se jätetään pois, "vain". Tässä voit myös määrittää näytettävän kuvakkeen ja oletuspainikkeen.
otsikko - Otsikko viestiruudun yläosassa. Jos se jätetään pois, nykyisen sovelluksen nimi näytetään (esim. Microsoft Excel).
ohjetiedosto - Määritä ohjetiedosto, jota voidaan käyttää, kun käyttäjä napsauttaa Ohje -painiketta. Jos määritetty, sinun on myös lisättävä konteksti (alla)
kontekstissa - Numeerinen lauseke, joka edustaa ohjeen kontekstinumeroa, joka on määritetty asianmukaiseen ohjeaiheeseen.
Voit luultavasti jättää ohjetiedoston ja kontekstiargumentit huomiotta. En ole koskaan nähnyt niitä käytettynä.
Mukauta viestiruudun otsikko ja kehote
MsgBox -toiminnon avulla voit muokata otsikkoa ja kehotusviestejä seuraavasti:
1 | Msgbox "Kysy", "Otsikko" |
Toinen esimerkki:
123 | Sub MsgBoxPromptTitle ()MsgBox "Vaihe 1 valmis. Suorita vaihe 2. napsauttamalla OK." ,, "Vaihe 1/5"End Sub |
Tärkeä! Muista ympäröidä tekstisi lainauksilla.
MessageBox LineBreaks
Voit myös lisätä rivinvaihtoja viestikentän kehotteisiin vbNewLine -toiminnolla.
123 | Sub MsgBoxPromptTitle_NewLine ()MsgBox "Vaihe 1 valmis." & vbNewLine & "Napsauta OK suorittaaksesi vaihe 2.", "Vaihe 1/5"End Sub |
Huomaa, että liitämme tekstin yhteen & -merkin avulla. Voit oppia lisää tekstin kanssa ja tekstin kanssa käyttämisestä ja muista rivinvaihtojen lisäämisvaihtoehdoista artikkelimme liittymisestä tekstiin.
MsgBox -kuvakkeet
VBA antaa sinulle mahdollisuuden lisätä yhden neljästä valmiista kuvakkeesta viestikenttiin:
Kuvake Jatkuva | Kuvake |
---|---|
vbTiedot | ![]() |
vbKriittinen | ![]() |
vbKysymys | ![]() |
vb Huutomerkki | ![]() |
Ikonivakio tulee sijoittaa painike -argumenttiin:
123 | Sub MsgBoxQuestionIcon ()MsgBox "Kysymysesimerkki", vbQuestionEnd Sub |
Tämä luo oletusviestikentän OK, jossa on kysymyskuvake:
Huomaa, kuinka kirjoittaessasi VBA -editori näyttää sinulle käytettävissä olevat vaihtoehdot:
Tästä on hyötyä, koska sinun ei tarvitse muistaa tarkkaa syntaksia tai kuvakkeiden tai painikkeiden nimiä.
Nyt esittelemme jokaisen viestiruudun kuvakkeen:
MsgBox -kuvakkeet - tiedot
123 | Sub MsgBoxInformationIcon ()MsgBox "Tietoesimerkki", vbInformationEnd Sub |
MsgBox -kuvakkeet - kriittisiä
123 | Sub MsgBoxCriticalIcon ()MsgBox "Kriittinen esimerkki", vbCriticalEnd Sub |
MsgBox -kuvakkeet - kysymys
123 | Sub MsgBoxQuestionIcon ()MsgBox "Kysymysesimerkki", vbQuestionEnd Sub |
MsgBox -kuvakkeet - Huutomerkki
123 | Sub MsgBoxExclamationIcon ()MsgBox "Huutomiesesimerkki", vbExclamationEnd Sub |
Alla puhumme viestiruutujen luomisesta eri painikkeilla. Jos valitset toisen viestiruudun tyypin, sinun on liitettävä kuvaketyyppi painikkeiden jälkeen "+" -merkillä:
123 | Sub MsgBoxQuestionIcon ()MsgBox "Haluatko jatkaa?", VbOKCancel + vbQuestionEnd Sub |
MsgBox -muuttujat
Toistaiseksi olemme työskennelleet ensisijaisesti OK -oletusviestiruudun kanssa. OK -viestiruudussa on vain yksi vaihtoehto: OK -painikkeen painaminen sallii koodin jatkumisen. Voit kuitenkin määrittää myös muita painikkeiden ryhmiä: OK / Peruuta, Kyllä / Ei jne.
Tässä tapauksessa haluat suorittaa erilaisia toimintoja sen mukaan, mitä painiketta painetaan. Katsotaanpa esimerkkiä.
Tässä on viestikenttä, jonka luomme:
Tämä on koko koodi (jaamme sen seuraavaksi):
123456789101112 | Sub MsgBoxVariable ()Hämärä vastaus kokonaislukunaanswer = MsgBox ("Haluatko jatkaa?", vbQuestion + vbYesNo)Jos vastaus = vbKylläMsgBox "Kyllä"MuuMsgBox "Ei"Loppu JosEnd Sub |
Ensin määritämme viestiruudun lähdön kokonaislukumuuttujalle.
123 | Hämärä vastaus kokonaislukunaanswer = MsgBox ("Haluatko jatkaa?", vbQuestion + vbYesNo) |
Seuraavaksi määritämme If-Else-toiminnolla, mitä tehdä sen perusteella, mitä painiketta painetaan:
12345 | Jos vastaus = vbKylläMsgBox "Kyllä"MuuMsgBox "Ei"Loppu Jos |
MsgBox-funktio palauttaa kokonaislukuarvon (1-7), joten määritämme muuttujan kokonaislukutyypiksi. Kokonaislukuun viittaamisen sijaan voit kuitenkin viitata vakioon (esim. VbOK, vbCancel jne.). Katso tästä taulukosta kaikki vaihtoehdot:
Painike | Jatkuva | Arvo |
---|---|---|
OK | vbOK | 1 |
Peruuttaa | vbPeruuta | 2 |
Keskeyttää | vbAbort | 3 |
Yritä uudelleen | vbYritä uudelleen | 4 |
Jättää huomiotta | vbIlmoita | 5 |
Joo | vbKyllä | 6 |
Ei | vbEi | 7 |
Esittelemme nyt kunkin painikeryhmän:
OK -viestiruutu - vbOKOnly
Tämä on vakio VBA -viestilaatikko.
123456 | Sub MsgBox_OKOnly ()Hämärä vastaus kokonaislukunavastaus = MsgBox ("OKOnly -esimerkki", vbOKOnly)End Sub |
OK Peruuta viestiruutu - vbOKCancel
123456789101112 | Sub MsgBox_OKCancel ()Hämärä vastaus kokonaislukunaanswer = MsgBox ("OK Peruuta esimerkki", vbOKCancel)Jos vastaus = vbOK SittenMsgBox "OK"MuuMsgBox "Peruuta"Loppu JosEnd Sub |
Kyllä Ei Viestiruutu - vbKyllä
123456789101112 | Sub MsgBox_YesNo ()Hämärä vastaus kokonaislukunavastaus = MsgBox ("Kyllä Ei Esimerkki", vbYesNo)Jos vastaus = vbKylläMsgBox "Kyllä"MuuMsgBox "Ei"Loppu JosEnd Sub |
Kyllä Ei Peruuta viestilaatikko - vbYesNoCancel
1234567891011121314 | Sub MsgBox_YesNoCancel ()Hämärä vastaus kokonaislukunaanswer = MsgBox ("Kyllä Ei Peruuta Esimerkki", vbYesNoCancel)Jos vastaus = vbKylläMsgBox "Kyllä"MuutenJos vastaus = vbEi sittenMsgBox "Ei"MuuMsgBox "Peruuta"Loppu JosEnd Sub |
Keskeytä uudelleen Yritä jättää huomiotta viestiruutu - vbAbortRetryIgnore
1234567891011121314 | Sub MsgBox_AbortRetryIgnore ()Hämärä vastaus kokonaislukunaanswer = MsgBox ("Abort Retry Ignore Example", vbAbortRetryIgnore)Jos vastaus = vbAbort SittenMsgBox "Keskeytä"MuutenJos vastaus = vbYritä uudelleenMsgBox "Yritä uudelleen"MuuMsgBox "Ohita"Loppu JosEnd Sub |
Yritä uudelleen peruuttaa viestiruutu - vbRetryCancel
123456789101112 | Sub MsgBox_RetryCancel ()Hämärä vastaus kokonaislukunaanswer = MsgBox ("Yritä peruuttaa esimerkki uudelleen", vbRetryCancel)Jos vastaus = vbYritä uudelleenMsgBox "Yritä uudelleen"MuuMsgBox "Peruuta"Loppu JosEnd Sub |
Esimerkkejä VBA MessageBoxista
Viestiruudun vahvistus ennen makron suorittamista
Tämä koodi näyttää Kyllä Ei Viesti -ruudun ennen makron kutsumista. Jos Kyllä -painiketta napsautetaan, makroa kutsutaan, jos Ei -painiketta, makro ei toimi.
12345678 | Sub Msgbox_BeforeRunning ()Hämärä vastaus kokonaislukunaanswer = MsgBox ("Haluatko käyttää Macro1?", vbQuestion + vbYesNo)Jos vastaus = vbKyllä, soita sitten Makro1End Sub |
Kyllä / Ei -viestiruutu - Poistu aliosasta
Tässä vahvistamme käyttäjän kanssa, jatketaanko makron suorittamista. Jos napsautetaan Ei, koodi poistuu aliosasta, muuten menettely jatkuu.
12345678910 | Sub Msgbox_BeforeRunning ()Hämärä vastaus kokonaislukunaanswer = MsgBox ("Haluatko jatkaa?", vbQuestion + vbYesNo)Jos vastaus = vbEi, lopeta sitten Sub'Joku koodiEnd Sub |
VBA -viestiruutu Access VBA: ssa
Kaikki yllä olevat esimerkit toimivat täsmälleen samalla tavalla Access VBA: ssa kuin Excel VBA: ssa.