De flexibiliteit van het VBA-knoppenargument maakt het eenvoudig om uw Excel-berichtvakken aan te passen. U kunt kiezen welke knoppen u wilt weergeven, bepalen of een pictogram verschijnt en beslissen welke knop de standaard is (de standaardknop is "geklikt" als de gebruiker op Enter drukt).
U kunt ingebouwde constanten gebruiken voor het knopargument. Als u wilt, kunt u de waarde eerder dan een constante gebruiken (maar het gebruik van de ingebouwde constanten is een stuk eenvoudiger).
Om meer dan één van deze constanten als een argument te gebruiken, verbindt u ze gewoon met een + -operator. Als u bijvoorbeeld een berichtvenster wilt weergeven met de knoppen Ja en Nee en een uitroepteken, gebruikt u de volgende uitdrukking als het tweede MsgBox-argument:
vbYesNo + vbExclamation
Of, als u uw code minder begrijpelijk wilt maken, gebruikt u een waarde van 52 (dat wil zeggen 4 + 48).
In het volgende voorbeeld wordt een combinatie van constanten gebruikt om een berichtvenster weer te geven met een knop Ja en een knop Nee (vb Ja Nee), evenals een pictogram voor een vraagteken (vbQuestion). De constante vbDefaultButton2 duidt de tweede knop (Nee) aan als de standaardknop - dat wil zeggen, de knop waarop wordt geklikt als de gebruiker op Enter drukt. Voor de eenvoud zijn deze constanten toegewezen aan de variabele Config en vervolgens Config als het tweede argument in de functie MsgBox:
Sub GetAnswer3 () Dim Config Als lange schaduw Ans als Integer Config = vbYesNo + vbQuestion + vbDefaultButton2 Ans = MsgBox ("Verwerk het maandelijkse rapport?", Config) Als Ans = vb Ja dan RunReport End Sub
Bekijk het berichtvenster Excel wordt weergegeven wanneer u de GetAnswer3-procedure uitvoert. Als de gebruiker op de knop Ja klikt, voert de routine de procedure met de naam RunReport uit. Als de gebruiker op de knop Nee klikt (of op Enter drukt), wordt de routine beëindigd zonder actie. Omdat het titelargument was weggelaten in de functie MsgBox, gebruikt Excel de standaardtitel Microsoft Excel.
De volgende routine biedt nog een voorbeeld van het gebruik van de functie MsgBox:
Sub GetAnswer4 () Dim Msg As String, Titel As String Dim Config Als geheel getal, Ans As Integer Msg = "Wilt u het maandelijkse rapport verwerken? "Msg = Msg & vbNewLine & vbNewLine Msg = Msg &" Het verwerken van het maandelijkse rapport zal "Msg = Msg &" ongeveer 15 minuten duren. Het "Msg = Msg &" genereert een rapport van 30 pagina's voor "Msg = Msg &" alle verkoopkantoren voor de huidige maand "Msg = Msg &". "Title =" XYZ Marketing Company "Config = vbYesNo + vbQuestion Ans = MsgBox (Msg, Config, Title) If Ans = vb Ja dan RunReport End Sub
In dit voorbeeld wordt een efficiënte manier getoond om een langer bericht in een berichtvenster op te geven.Een variabele (Msg) en de aaneenschakelingsexploitant (&) worden gebruikt om het bericht in een reeks instructies samen te stellen. De constante vbNewLine voegt een teken voor de regeleinde in dat een nieuwe regel begint (gebruik deze twee keer om een lege regel in te voegen). Het titelargument wordt gebruikt om een andere titel in het berichtvenster weer te geven. Hier is het berichtvenster Excel wordt weergegeven wanneer u deze procedure uitvoert.
Dit dialoogvenster, weergegeven door de functie MsgBox, geeft een titel, een pictogram en twee knoppen weer.U kunt constanten (zoals vb Ja en vbNo) gebruiken voor de geretourneerde waarde van een MsgBox-functie. Hier zijn een paar andere constanten.
Constante | Waarde | Wat dit betekent |
---|---|---|
vbOK | 1 | Gebruiker heeft op OK geklikt. |
vbCancel | 2 | Gebruiker heeft op Annuleren geklikt. |
vbAbort | 3 | gebruiker heeft op Annuleren geklikt. |
vbRetry | 4 | Gebruiker heeft op Opnieuw klikken geklikt. |
vbIgnore | 5 | gebruiker heeft op Negeren geklikt. |
vb Ja | 6 | gebruiker klikt op Ja. |
vbNo | 7 | Gebruiker heeft op Nee geklikt |
En dat is vrijwel alles wat u moet weten over de MsgBox-functie. Gebruik echter wel waarschuwingsvakken. Er is meestal geen reden om berichtvakken weer te geven die geen doel dienen. Mensen voelen zich bijvoorbeeld geërgerd wanneer ze elke dag een bericht zien met de mededeling Goedemorgen. Bedankt voor het laden van de werkmap Budgetprojectie.