Fleksibiliteten af VBA-knappernes argument gør det nemt at tilpasse dine Excel-meddelelsesbokse. Du kan vælge, hvilke knapper der skal vises, bestemme om et ikon skal vises, og bestemme hvilken knap der er standard (standardknappen "klikkes", hvis brugeren trykker på Enter).
Du kan bruge indbyggede konstanter til knappens argument. Hvis du foretrækker det, kan du bruge værdien i stedet for en konstant (men at bruge de indbyggede konstanter er meget nemmere).
For at bruge mere end én af disse konstanter som et argument, skal du bare forbinde dem med en +-operator. Hvis du f.eks. vil vise en beskedboks med knapperne Ja og Nej og et udråbsikon, skal du bruge følgende udtryk som det andet MsgBox-argument:
vbJaNej + vbUdråb
Eller, hvis du foretrækker at gøre din kode mindre forståelig, skal du bruge en værdi på 52 (det vil sige 4 + 48).
Det følgende eksempel bruger en kombination af konstanter til at vise en beskedboks med en Ja-knap og en Nej-knap (vbYesNo) samt et spørgsmålstegnikon (vbQuestion). Konstanten vbDefaultButton2 angiver den anden knap (Nej) som standardknappen - det vil sige den knap, der klikkes på, hvis brugeren trykker på Enter. For nemheds skyld tildeles disse konstanter til Config-variablen og bruger derefter Config som det andet argument i MsgBox-funktionen:
Sub GetAnswer3()
Dim Config As Long
Dim Ans Som heltal
Config = vbYesNo + vbQuestion + vbDefaultButton2
Ans = MsgBox(“Behandle den månedlige rapport?”, Config)
Hvis Ans = vbYes Så KørRapport
Slut Sub
Tjek den beskedboks, Excel viser, når du udfører GetAnswer3-proceduren. Hvis brugeren klikker på knappen Ja, udfører rutinen proceduren med navnet RunReport. Hvis brugeren klikker på knappen Nej (eller trykker på Enter), afsluttes rutinen uden handling. Fordi titelargumentet blev udeladt i MsgBox-funktionen, bruger Excel standardtitlen, Microsoft Excel.
MsgBox-funktionens buttons-argument bestemmer, hvad der vises i meddelelsesboksen.
Følgende rutine giver et andet eksempel på brug af MsgBox-funktionen:
Sub GetAnswer4()
Dæmp besked som streng, titel som streng
Dim Config As Integer, Ans As Integer
Msg = "Vil du behandle den månedlige rapport?"
Msg = Msg & vbNewLine & vbNewLine
Msg = Msg & "Behandling af den månedlige rapport vil"
Msg = Msg & "tag cirka 15 minutter. Det "
Msg = Msg & "vil generere en 30-siders rapport for "
Msg = Msg & "alle salgskontorer for den nuværende"
Msg = Msg & "month."
Titel = "XYZ Marketing Company"
Config = vbYesNo + vbQuestion
Ans = MsgBox(Msg, Config, Title)
Hvis Ans = vbYes Så KørRapport
Slut Sub
Dette eksempel viser en effektiv måde at angive en længere besked i en beskedboks. En variabel (Msg) og sammenkædningsoperatoren (&) bruges til at bygge beskeden i en række udsagn. vbNewLine-konstanten indsætter et linjeskifttegn, der starter en ny linje (brug det to gange til at indsætte en tom linje). Titelargumentet bruges til at vise en anden titel i meddelelsesboksen. Her er meddelelsesboksen, som Excel viser, når du udfører denne procedure.
Denne dialogboks, der vises af MsgBox-funktionen, viser en titel, et ikon og to knapper.
Du kan bruge konstanter (såsom vbYes og vbNo) til returværdien af en MsgBox-funktion. Her er et par andre konstanter.
Konstant |
Værdi |
Hvad det betyder |
vbOK |
1 |
Bruger klikkede OK. |
vbAnnuller |
2 |
Bruger klikkede på Annuller. |
vbAbort |
3 |
Bruger klikkede på Afbryd. |
vbPrøv igen |
4 |
Brugeren klikkede på Prøv igen. |
vbIgnorer |
5 |
Brugeren klikkede på Ignorer. |
vbJa |
6 |
Bruger klikkede på Ja. |
vbNr |
7 |
Bruger klikkede på Nej. |
Og det er stort set alt, hvad du behøver at vide om MsgBox-funktionen. Brug dog beskedbokse med forsigtighed. Der er normalt ingen grund til at vise beskedbokse, der ikke tjener noget formål. For eksempel har folk en tendens til at blive irriterede, når de hver dag ser en beskedboks, hvor der står Godmorgen. Tak, fordi du indlæste budgetprojekterings-projektbogen.