Flexibiliteten i argumentet VBA-knappar gör det enkelt att anpassa dina Excel-meddelanderutor. Du kan välja vilka knappar som ska visas, bestämma om en ikon ska visas och bestämma vilken knapp som är standard (standardknappen "klickas" om användaren trycker på Enter).
Du kan använda inbyggda konstanter för knappargumentet. Om du föredrar det kan du använda värdet snarare än en konstant (men att använda de inbyggda konstanterna är mycket lättare).
För att använda mer än en av dessa konstanter som ett argument, koppla dem bara till en +-operator. Om du till exempel vill visa en meddelanderuta med knapparna Ja och Nej och en utropsikon använder du följande uttryck som det andra MsgBox-argumentet:
vbYesNo + vbUtrop
Eller, om du föredrar att göra din kod mindre förståelig, använd värdet 52 (det vill säga 4 + 48).
Följande exempel använder en kombination av konstanter för att visa en meddelanderuta med en Ja-knapp och en Nej-knapp (vbYesNo) samt en frågeteckenikon (vbQuestion). Konstanten vbDefaultButton2 anger den andra knappen (Nej) som standardknappen - det vill säga knappen som klickas på om användaren trycker på Enter. För enkelhetens skull tilldelas dessa konstanter till variabeln Config och använder sedan Config som det andra argumentet i MsgBox-funktionen:
Sub GetAnswer3()
Dim Config As Long
Dim Ans Som heltal
Config = vbYesNo + vbQuestion + vbDefaultButton2
Ans = MsgBox(“Bearbeta månadsrapporten?”, Config)
Om Ans = vbYes Körrapport
Avsluta Sub
Kolla in meddelanderutan som Excel visar när du kör GetAnswer3-proceduren. Om användaren klickar på Ja-knappen, kör rutinen proceduren med namnet RunReport. Om användaren klickar på knappen Nej (eller trycker på Enter), avslutas rutinen utan någon åtgärd. Eftersom titelargumentet utelämnades i MsgBox-funktionen använder Excel standardtiteln, Microsoft Excel.

MsgBox-funktionens knappargument avgör vad som visas i meddelanderutan.
Följande rutin ger ett annat exempel på hur MsgBox-funktionen används:
Sub GetAnswer4()
Dim meddelande som sträng, titel som sträng
Dim Config Som heltal, Ans som heltal
Msg = "Vill du bearbeta månadsrapporten?"
Msg = Msg & vbNewLine & vbNewLine
Msg = Msg & "Bearbetning av månadsrapporten kommer att"
Msg = Msg & "ta ungefär 15 minuter. Det "
Msg = Msg & "kommer att generera en 30-sidig rapport för "
Msg = Msg & "alla försäljningskontor för nuvarande"
Msg = Msg & "month."
Titel = "XYZ Marketing Company"
Config = vbYesNo + vbQuestion
Ans = MsgBox(Msg, Config, Title)
Om Ans = vbYes Körrapport
Avsluta Sub
Det här exemplet visar ett effektivt sätt att ange ett längre meddelande i en meddelanderuta. En variabel (Msg) och sammanlänkningsoperatorn (&) används för att bygga meddelandet i en serie satser. Konstanten vbNewLine infogar ett radbrytningstecken som startar en ny rad (använd den två gånger för att infoga en tom rad). Titelargumentet används för att visa en annan titel i meddelanderutan. Här är meddelanderutan som Excel visar när du utför den här proceduren.

Den här dialogrutan, som visas av MsgBox-funktionen, visar en titel, en ikon och två knappar.
Du kan använda konstanter (som vbYes och vbNo) för returvärdet för en MsgBox-funktion. Här är några andra konstanter.
| Konstant |
Värde |
Vad det betyder |
| vbOK |
1 |
Användaren klickade på OK. |
| vbAvbryt |
2 |
Användaren klickade på Avbryt. |
| vbAbort |
3 |
Användaren klickade på Avbryt. |
| vb Försök igen |
4 |
Användaren klickade på Försök igen. |
| vbIgnorera |
5 |
Användaren klickade på Ignorera. |
| vbJa |
6 |
Användaren klickade på Ja. |
| vbNr |
7 |
Användaren klickade på Nej. |
Och det är i stort sett allt du behöver veta om MsgBox-funktionen. Använd dock meddelanderutor med försiktighet. Det finns vanligtvis ingen anledning att visa meddelanderutor som inte tjänar något syfte. Till exempel tenderar människor att bli irriterade när de ser en meddelanderuta varje dag där det står God morgon. Tack för att du laddade arbetsboken Budget Projection.