Olet todennäköisesti perehtynyt VBA MsgBox -toimintoon. MsgBox-toiminto, joka hyväksyy alla esitetyt argumentit, on kätevä tietojen näyttämiseen ja yksinkertaisten käyttäjän syötteiden saamiseen. Se pystyy saamaan käyttäjän syötteitä, koska se on toiminto. Funktio, kuten luultavasti tiedät, palauttaa arvon. MsgBox-funktion tapauksessa se käyttää valintaikkunaa palauttamansa arvon saamiseksi. Jatka lukemista nähdäksesi, kuinka se toimii.
Perustelu |
Mihin se vaikuttaa |
Kehote |
Viestiruudussa näkyy teksti Excel |
Painikkeet |
Numero, joka määrittää, mitkä painikkeet (kuvakkeen kanssa)
näkyvät viestilaatikossa (valinnainen) |
Otsikko |
Teksti, joka näkyy viestilaatikon otsikkorivillä
(valinnainen) |
Tässä on yksinkertaistettu versio MsgBox-funktion syntaksista:
ViestiBox(kehote[, painikkeet][, otsikko])
Yksinkertaisen viestilaatikon näyttäminen
Voit käyttää MsgBox-toimintoa kahdella tavalla:
-
Viestin näyttäminen käyttäjälle: Tässä tapauksessa et välitä funktion palauttamasta tuloksesta.
-
Vastauksen saaminen käyttäjältä: Tässä tapauksessa välität funktion palauttamasta tuloksesta. Tulos riippuu painikkeesta, jota käyttäjä napsauttaa.
Jos käytät MsgBox-funktiota yksinään, älä lisää sulkuja argumenttien ympärille. Seuraava esimerkki näyttää yksinkertaisesti viestin eikä palauta tulosta. Kun viesti tulee näkyviin, koodi pysähtyy, kunnes käyttäjä napsauttaa OK.
Sub MsgBoxDemo()
MsgBox "Aloita tulostus napsauttamalla OK."
Sheets ("Tulokset"). Tulosta
Lopeta ala
Katso alta, miltä tämä viestilaatikko näyttää. Tässä tapauksessa tulostus alkaa, kun käyttäjä napsauttaa OK. Huomaatko, että tulostusta ei voi peruuttaa? Jatka lukemista saadaksesi selville kuinka korjata se.
Yksinkertainen viestilaatikko.
Vastauksen saaminen viestilaatikosta
Jos näytät viestiruudun, jossa on enemmän kuin vain OK-painike, haluat todennäköisesti tietää, mitä painiketta käyttäjä napsauttaa. Olet onnekas. MsgBox-funktio voi palauttaa arvon, joka edustaa napsautettua painiketta. Voit määrittää MsgBox-funktion tuloksen muuttujalle.
Seuraavassa koodissa käytetään joitain sisäisiä vakioita, jotka helpottavat MsgBoxin palauttamien arvojen käsittelyä:
Sub GetAnswer()
Dim Ans As Long
Ans = MsgBox("Aloita tulostus?", vbYesNo)
Valitse Tapaus Ans
Tapaus vbKyllä
ActiveSheet.PrintOut
Tapaus vbNo
MsgBox "Tulostus peruutettu"
Lopeta valinta
Lopeta ala
Jatkuva |
Arvo |
Mitä se tekee |
vbOKOnly |
0 |
Näyttää vain OK-painikkeen. |
vbOKPeruuta |
1 |
Näyttää OK- ja Peruuta-painikkeet. |
vbAbortRetryIgnore |
2 |
Näyttää Keskeytä-, Yritä uudelleen- ja Ohita-painikkeet. |
vbYesNoPeruuta |
3 |
Näyttää Kyllä-, Ei- ja Peruuta-painikkeet. |
vbKylläEi |
4 |
Näyttää Kyllä- ja Ei-painikkeet. |
vbRetryCancel |
5 |
Näyttää Yritä uudelleen- ja Peruuta-painikkeet. |
vbCritical |
16 |
Näyttää kriittisen viestin kuvakkeen. |
vbKysymys |
32 |
Näyttää varoituskyselykuvakkeen. |
vb Huutomerkki |
48 |
Näyttää varoitusviestikuvakkeen. |
vbTiedot |
64 |
Näyttää tietoviestikuvakkeen. |
vbDefaultButton1 |
0 |
Ensimmäinen painike on oletuksena. |
vbDefaultButton2 |
256 |
Toinen painike on oletuksena. |
vbDefaultButton3 |
512 |
Kolmas painike on oletuksena. |
vbDefaultButton4 |
768 |
Neljäs painike on oletuksena. |
Katso miltä se näyttää. Kun suoritat tämän toimenpiteen, Ans-muuttujalle määritetään arvo joko vbYes tai vbNo sen mukaan, mitä painiketta käyttäjä napsauttaa. Select Case -käsky käyttää Ans-arvoa määrittääkseen, mikä toiminto koodin tulee suorittaa.
Yksinkertainen viestilaatikko kahdella painikkeella.
Voit käyttää MsgBox-funktion tulosta myös ilman muuttujaa, kuten seuraava esimerkki osoittaa:
Sub GetAnswer2()
Jos MsgBox("Aloita tulostus?", vbYesNo) = vbYes Sitten
' ...[koodi, jos Kyllä napsautetaan]…
Muu
' ...[koodi, jos Kyllä ei napsauteta]…
Loppu Jos
Lopeta ala