Fleksibiliteten til VBA-knappargumentet gjør det enkelt å tilpasse meldingsboksene i Excel. Du kan velge hvilke knapper som skal vises, bestemme om et ikon skal vises, og bestemme hvilken knapp som er standard (standardknappen "klikkes" hvis brukeren trykker Enter).
Du kan bruke innebygde konstanter for knappens argument. Hvis du foretrekker det, kan du bruke verdien i stedet for en konstant (men å bruke de innebygde konstantene er mye enklere).
For å bruke mer enn én av disse konstantene som et argument, koble dem bare til en +-operator. For for eksempel å vise en meldingsboks med Ja og Nei-knappene og et utropsikon, bruk følgende uttrykk som det andre MsgBox-argumentet:
vbJaNei + vbUtrop
Eller, hvis du foretrekker å gjøre koden din mindre forståelig, bruk en verdi på 52 (det vil si 4 + 48).
Følgende eksempel bruker en kombinasjon av konstanter for å vise en meldingsboks med en Ja-knapp og en Nei-knapp (vbYesNo) samt et spørsmålstegnikon (vbQuestion). Konstanten vbDefaultButton2 angir den andre knappen (Nei) som standardknappen - det vil si knappen som klikkes hvis brukeren trykker Enter. For enkelhets skyld tilordnes disse konstantene til Config-variabelen og bruker deretter Config som det andre argumentet i MsgBox-funksjonen:
Sub GetAnswer3()
Dim Config As Long
Dim Ans As Heltall
Config = vbYesNo + vbQuestion + vbDefaultButton2
Ans = MsgBox(“Behandle den månedlige rapporten?”, Config)
Hvis Ans = vbYes Så Kjør Rapport
End Sub
Sjekk ut meldingsboksen Excel viser når du utfører GetAnswer3-prosedyren. Hvis brukeren klikker Ja-knappen, utfører rutinen prosedyren kalt RunReport. Hvis brukeren klikker på Nei-knappen (eller trykker Enter), avsluttes rutinen uten handling. Fordi tittelargumentet ble utelatt i MsgBox-funksjonen, bruker Excel standardtittelen, Microsoft Excel.
MsgBox-funksjonens knappeargument bestemmer hva som vises i meldingsboksen.
Følgende rutine gir et annet eksempel på bruk av MsgBox-funksjonen:
Sub GetAnswer4()
Dim melding som streng, tittel som streng
Dim Config As Heltall, Ans Som Heltall
Msg = "Vil du behandle den månedlige rapporten?"
Msg = Msg & vbNewLine & vbNewLine
Msg = Msg & "Behandling av den månedlige rapporten vil "
Msg = Msg & "ta ca. 15 minutter. det "
Msg = Msg & "vil generere en 30-siders rapport for "
Msg = Msg & "alle salgskontorer for gjeldende"
Msg = Msg & "month."
Tittel = "XYZ Marketing Company"
Config = vbYesNo + vbQuestion
Ans = MsgBox(Msg, Config, Tittel)
Hvis Ans = vbYes Så Kjør Rapport
End Sub
Dette eksemplet viser en effektiv måte å spesifisere en lengre melding i en meldingsboks. En variabel (Msg) og sammenkoblingsoperatoren (&) brukes til å bygge meldingen i en serie med utsagn. vbNewLine-konstanten setter inn et linjeskifttegn som starter en ny linje (bruk den to ganger for å sette inn en tom linje). Tittelargumentet brukes til å vise en annen tittel i meldingsboksen. Her er meldingsboksen Excel viser når du utfører denne prosedyren.
Denne dialogboksen, som vises av MsgBox-funksjonen, viser en tittel, et ikon og to knapper.
Du kan bruke konstanter (som vbYes og vbNo) for returverdien til en MsgBox-funksjon. Her er noen andre konstanter.
Konstant |
Verdi |
Hva det betyr |
vbOK |
1 |
Bruker klikket OK. |
vbAvbryt |
2 |
Bruker klikket på Avbryt. |
vbAbort |
3 |
Bruker klikket på Avbryt. |
vbPrøv på nytt |
4 |
Brukeren klikket Prøv på nytt. |
vbIgnorer |
5 |
Brukeren klikket på Ignorer. |
vbJa |
6 |
Bruker klikket Ja. |
vbNo |
7 |
Bruker klikket på Nei. |
Og det er stort sett alt du trenger å vite om MsgBox-funksjonen. Bruk meldingsbokser med forsiktighet. Det er vanligvis ingen grunn til å vise meldingsbokser som ikke tjener noen hensikt. For eksempel har folk en tendens til å bli irriterte når de ser en meldingsboks hver dag der det står God morgen. Takk for at du lastet inn Budget Projection-arbeidsboken.