VBA-painikkeiden argumentin joustavuus tekee Excel-viestilaatikoiden mukauttamisesta helppoa. Voit valita näytettävät painikkeet, määrittää, näkyykö kuvake, ja päättää, mikä painike on oletuspainike (oletuspainiketta napsautetaan, jos käyttäjä painaa Enter).
Voit käyttää painikkeiden argumentille sisäänrakennettuja vakioita. Jos haluat, voit käyttää arvoa vakion sijaan (mutta sisäänrakennettujen vakioiden käyttäminen on paljon helpompaa).
Jos haluat käyttää useampaa kuin yhtä näistä vakioista argumenttina, yhdistä ne vain +-operaattorilla. Jos haluat esimerkiksi näyttää viestilaatikon, jossa on Kyllä- ja Ei-painikkeet sekä huutomerkki, käytä seuraavaa lauseketta toisena MsgBox-argumenttina:
vbYesNo + vbhuutomerkki
Tai jos haluat tehdä koodistasi vähemmän ymmärrettävän, käytä arvoa 52 (eli 4 + 48).
Seuraava esimerkki käyttää vakioiden yhdistelmää näyttämään viestiruudun, jossa on Kyllä-painike ja Ei-painike (vbYesNo) sekä kysymysmerkkikuvake (vbQuestion). Vakio vbDefaultButton2 määrittää toisen painikkeen (Ei) oletuspainikkeeksi – eli painikkeeksi, jota napsautetaan, jos käyttäjä painaa Enter. Yksinkertaisuuden vuoksi nämä vakiot määritetään Config-muuttujalle ja käytä sitten Config-muuttujaa toisena argumenttina MsgBox-funktiossa:
Sub GetAnswer3()
Dim Config As Long
Dim Ans Kokonaislukuna
Config = vbYesNo + vbQuestion + vbDefaultButton2
Ans = MsgBox("Käsittele kuukausiraportti?", Config)
Jos Ans = vbYes, Suorita raportti
Lopeta ala
Tarkista viestiruutu, jonka Excel näyttää, kun suoritat GetAnswer3-menettelyn. Jos käyttäjä napsauttaa Kyllä-painiketta, rutiini suorittaa toiminnon nimeltä RunReport. Jos käyttäjä napsauttaa Ei-painiketta (tai painaa Enter), rutiini päättyy ilman toimenpiteitä. Koska otsikkoargumentti jätettiin pois MsgBox-funktiosta, Excel käyttää oletusotsikkoa, Microsoft Excel.
MsgBox-funktion painikkeiden argumentti määrittää, mitä viestiruudussa näkyy.
Seuraava rutiini tarjoaa toisen esimerkin MsgBox-toiminnon käyttämisestä:
Sub GetAnswer4()
Himmeä viesti merkkijonona, otsikko merkkijonona
Dim Config As Integer, Ans As Integer
Msg = "Haluatko käsitellä kuukausiraportin?"
Msg = Msg & vbNewLine & vbNewLine
Msg = Viesti & "Kuukausiraportin käsittely
Msg = Viesti & "kestää noin 15 minuuttia. Se "
Msg = Viesti & "luo 30-sivuisen raportin "
Msg = Viesti & "kaikki myyntitoimistot nykyiselle"
Msg = Viesti & "kuukausi".
Otsikko = "XYZ-markkinointiyhtiö"
Config = vbYesNo + vbQuestion
Ans = ViestiBox (viesti, konfiguraatio, otsikko)
Jos Ans = vbYes, Suorita raportti
Lopeta ala
Tämä esimerkki osoittaa tehokkaan tavan määrittää pidempi viesti viestilaatikossa. Muuttujaa (Msg) ja ketjutusoperaattoria (&) käytetään sanoman rakentamiseen lausesarjassa. VbNewLine-vakio lisää rivinvaihtomerkin, joka aloittaa uuden rivin (käytä sitä kahdesti lisätäksesi tyhjän rivin). Otsikkoargumenttia käytetään näyttämään eri otsikko viestiruudussa. Tässä on viestiruutu, jonka Excel näyttää, kun suoritat tämän toimenpiteen.
Tämä MsgBox-toiminnon näyttämä valintaikkuna näyttää otsikon, kuvakkeen ja kaksi painiketta.
Voit käyttää vakioita (kuten vbYes ja vbNo) MsgBox-funktion palautusarvona. Tässä on muutamia muita vakioita.
Jatkuva |
Arvo |
Mitä se tarkoittaa |
vbOK |
1 |
Käyttäjä napsauttaa OK. |
vbPeruuta |
2 |
Käyttäjä napsauttaa Peruuta. |
vbAbort |
3 |
Käyttäjä napsauttaa Keskeytä. |
vbYritä uudelleen |
4 |
Käyttäjä napsauttaa Yritä uudelleen. |
vbOhita |
5 |
Käyttäjä napsauttaa Ohita. |
vbKyllä |
6 |
Käyttäjä napsauttaa Kyllä. |
vbNo |
7 |
Käyttäjä napsauttaa Ei. |
Ja siinä on melkein kaikki, mitä sinun tarvitsee tietää MsgBox-toiminnosta. Käytä viestilaatikoita kuitenkin varoen. Ei yleensä ole mitään syytä näyttää viestilaatikoita, joilla ei ole tarkoitusta. Ihmiset esimerkiksi ärsyyntyvät, kun he näkevät joka päivä viestilaatikon, jossa lukee Hyvää huomenta. Kiitos, että latasit Budget Projection -työkirjan.