Ja Nee Berichtenbox (Msgbox) - VBA-codevoorbeelden

In deze zelfstudie wordt beschreven hoe u de VBA MsgBox-functie gebruikt om berichtenboxen aan gebruikers weer te geven (inclusief de YesNo Messagebox). Mogelijk bent u ook geïnteresseerd in ons artikel over InputBoxen.

VBA MsgBox-functie

In VBA is het eenvoudig om een ​​eenvoudige MsgBox weer te geven:

1 MsgBox "Dit is een berichtenbox"

U kunt echter veel meer doen dan een eenvoudig OK-berichtvenster weergeven. Laten we snel een ingewikkeld voorbeeld bekijken voordat we in details duiken …

VBA Ja Nee Berichtenvak

Hieronder zullen we een berichtvenster maken met:

  • Een titel "Titel berichtvenster" en prompt "Tekst"
  • Een vraagtekenpictogram
  • Ja / Nee opties in plaats van een simpele "OK"
  • Standaardknop = 'Nee'
123 Dim antwoord als geheel getalanswer = MsgBox("Text", vbQuestion + vbYesNo + vbDefaultButton2, "Message Box Title")

Het berichtvenster zal vbJa of vbNee retourneren, afhankelijk van de keuze van de gebruiker. Vervolgens kunt u op basis van de keuze verschillende acties uitvoeren:

12345 Als antwoord = vbJa DanMsgBox "Ja"AndersMsgBox "Nee"Stop als

In het volgende gedeelte laten we u alle beschikbare opties zien bij het maken van berichtvensters. Vervolgens zullen we u kennis laten maken met de syntaxis van de MsgBox-functie en tot slot andere voorbeelden van berichtenboxen bespreken.

Opties voor VBA-berichtenbox

Kijk eens naar de afbeelding hieronder. Hier ziet u (bijna) alle beschikbare opties bij het maken van berichtenboxen. Let op de pictogrammen en de verschillende knoppen.

Dit is een screenshot van de "MessageBox Builder" van onze Premium VBA-invoegtoepassing: AutoMacro. Met de MessageBox Builder kunt u snel uw gewenste berichtenbox ontwerpen en de code in uw codemodule invoegen. Het bevat ook veel andere codebuilders, een uitgebreide VBA-codebibliotheek en een assortiment codeertools. Het is een must-have voor elke VBA-ontwikkelaar.

Syntaxis van MsgBox-functie

MsgBox( prompt [, buttons ] [, title ] [, helpfile, context ] )

prompt (verplicht) - Dit is de primaire tekst van het berichtvenster.

toetsen - Kies welke knoppen u wilt weergeven. Indien weggelaten, ‘Alleen OK’. Hier kunt u ook aangeven welk pictogram u wilt weergeven en de standaardknop.

titel - De titel bovenaan het berichtvenster. Indien weggelaten, wordt de naam van de huidige applicatie weergegeven (bijv. Microsoft Excel).

helpbestand - Specificeer het helpbestand dat toegankelijk is wanneer de gebruiker op de knop 'Help' klikt. Indien opgegeven, moet u ook context toevoegen (hieronder)

context - Numerieke uitdrukking die het Help-contextnummer vertegenwoordigt dat is toegewezen aan het juiste Help-onderwerp.

U kunt het helpbestand en de contextargumenten waarschijnlijk negeren. Ik heb ze nog nooit gebruikt gezien.

Titel en prompt van berichtvenster aanpassen

Met de MsgBox-functie kunt u de titel en promptberichten als volgt aanpassen:

1 Msgbox "Prompt",,"Titel"

Een ander voorbeeld:

123 Sub MsgBoxPromptTitle()MsgBox "Stap 1 voltooid. Klik op OK om stap 2 uit te voeren",, "Stap 1 van 5"Einde sub

Belangrijk! Vergeet niet om uw tekst te omringen met citaten.

MessageBox Line Breaks

U kunt ook regeleinden toevoegen aan uw berichtvensterprompts met 'vbNewLine'.

123 Sub MsgBoxPromptTitle_NewLine()MsgBox "Stap 1 voltooid." & vbNewLine & "Klik op OK om stap 2 uit te voeren", , "Stap 1 van 5"Einde sub

Merk op dat we het &-symbool gebruiken om tekst samen te voegen. U kunt meer leren over het gebruik van & met tekst en andere opties voor het invoegen van regeleinden in ons artikel over het samenvoegen van tekst.

MsgBox-pictogrammen

VBA geeft u de mogelijkheid om een ​​van de vier vooraf gebouwde pictogrammen aan uw berichtvensters toe te voegen:

Icoon Constant Icoon
vbInformatie
vbKritiek
vbVraag
vbUitroepteken

De Icon-constante moet binnen het knopargument worden geplaatst:

123 Sub MsgBoxQuestionIcon()MsgBox "Vraagvoorbeeld", vbVraagEinde sub

Dit genereert het standaard 'OK'-berichtvenster met het pictogram Vraag:

Merk op hoe wanneer u typt, de VBA-editor u de beschikbare opties laat zien:

Dit is handig omdat u de exacte syntaxis of namen van pictogrammen of knoppen niet hoeft te onthouden.

Nu zullen we elk berichtvakpictogram demonstreren:

MsgBox-pictogrammen - Informatie

123 Sub MsgBoxInformationIcon()MsgBox "Informatievoorbeeld", vbInformationEinde sub

MsgBox-pictogrammen - kritiek

123 Sub MsgBoxCriticalIcon()MsgBox "Kritiek voorbeeld", vbCriticalEinde sub

MsgBox-pictogrammen - Vraag

123 Sub MsgBoxQuestionIcon()MsgBox "Vraagvoorbeeld", vbVraagEinde sub

MsgBox-pictogrammen - Uitroepteken

123 Sub MsgBoxExclamationIcon()MsgBox "Exclamation Voorbeeld", vbExclamationEinde sub

Hieronder zullen we het hebben over het genereren van berichtvensters met verschillende knoplay-outs. Als u een ander type berichtvak kiest, moet u het pictogramtype na de knoppen toevoegen met een "+":

123 Sub MsgBoxQuestionIcon()MsgBox "Wilt u doorgaan?", vbOKCancel + vbQuestionEinde sub

MsgBox-variabelen

Tot nu toe hebben we voornamelijk gewerkt met het standaard 'OK'-berichtvenster. Het OK-berichtvenster heeft maar één optie: door op 'OK' te drukken, kan de code doorgaan. U kunt echter ook andere knopgroeperingen opgeven: OK / Annuleren, Ja / Nee, enz.

In dat geval wilt u verschillende acties uitvoeren op basis van welke knop wordt ingedrukt. Laten we een voorbeeld bekijken.

Hier is het berichtvenster dat we zullen genereren:

Dit is de volledige code (we zullen het hierna opsplitsen):

123456789101112 Sub MsgBoxVariable()Dim antwoord als geheel getalanswer = MsgBox("Wilt u doorgaan?", vbQuestion + vbYesNo)Als antwoord = vbJa DanMsgBox "Ja"AndersMsgBox "Nee"Stop alsEinde sub

Eerst wijzen we de output van de messagebox toe aan een integer-variabele.

123 Dim antwoord als geheel getalanswer = MsgBox("Wilt u doorgaan?", vbQuestion + vbYesNo)

Vervolgens gebruiken we een If-Else om te bepalen wat te doen op basis van welke knop wordt ingedrukt:

12345 Als antwoord = vbJa DanMsgBox "Ja"AndersMsgBox "Nee"Stop als

De functie MsgBox retourneert een geheel getal (tussen 1-7), dus we definiëren de variabele als een geheel getal. In plaats van naar het gehele getal te verwijzen, kunt u echter verwijzen naar een constante (bijv. vbOK, vbCancel, etc.). Bekijk deze tabel om alle opties te zien:

Knop Constante Waarde
Oke vbOK 1
Annuleren vbAnnuleren 2
Afbreken vbAfbreken 3
Opnieuw proberen vbOpnieuw proberen 4
Negeren vbNegeren 5
Ja vbJa 6
Nee vbNee 7

Nu zullen we elke knopgroepering demonstreren:

OK Berichtenbox - alleen vbOK

Dit is de standaard VBA-berichtenbox.

123456 Sub MsgBox_OKOnly()Dim antwoord als geheel getalanswer = MsgBox ("OKOnly-voorbeeld", vbOKOnly)Einde sub

OK Annuleer Berichtenbox - vbOKCancel

123456789101112 Sub MsgBox_OKCancel()Dim antwoord als geheel getalanswer = MsgBox("OK Annuleren Voorbeeld", vbOKCancel)Als antwoord = vbOK DanMsgBox "OK"AndersMsgBox "Annuleren"Stop alsEinde sub

Ja Nee Berichtenbox - vbJaNee

123456789101112 Sub MsgBox_JaNee()Dim antwoord als geheel getalanswer = MsgBox("Ja Nee Voorbeeld", vbJaNee)Als antwoord = vbJa DanMsgBox "Ja"AndersMsgBox "Nee"Stop alsEinde sub

Ja Nee Berichtenvak annuleren - vbYesNoCancel

1234567891011121314 Sub MsgBox_YesNoCancel()Dim antwoord als geheel getalanswer = MsgBox("Ja Nee Annuleringsvoorbeeld", vbYesNoCancel)Als antwoord = vbJa DanMsgBox "Ja"ElseIf antwoord = vbNee DanMsgBox "Nee"AndersMsgBox "Annuleren"Stop alsEinde sub

Afbreken Opnieuw Negeer berichtvenster - vbAbortRetryIgnore

1234567891011121314 Sub MsgBox_AbortRetryIgnore()Dim antwoord als geheel getalanswer = MsgBox ("Afbreken opnieuw proberen voorbeeld negeren", vbAbortRetryIgnore)Als antwoord = vbAfbreken DanMsgBox "Afbreken"ElseIf antwoord = vbProbeer het dan opnieuwMsgBox "Opnieuw proberen"AndersMsgBox "Negeren"Stop alsEinde sub

Opnieuw proberen Annuleren Berichtenvak - vbRetryCancel

123456789101112 Sub MsgBox_RetryCancel()Dim antwoord als geheel getalanswer = MsgBox ("Retry Cancel-voorbeeld", vbRetryCancel)Als antwoord = vbProbeer het opnieuw danMsgBox "Opnieuw proberen"AndersMsgBox "Annuleren"Stop alsEinde sub

Voorbeelden van VBA MessageBox

Bevestiging berichtvenster voordat macro wordt uitgevoerd

Deze code geeft een Ja Nee Berichtvenster weer voordat een macro wordt aangeroepen. Als op Ja wordt geklikt, wordt de macro aangeroepen, als op Nee wordt geklikt, wordt de macro niet uitgevoerd.

12345678 Sub Msgbox_BeforeRunning()Dim antwoord als geheel getalanswer = MsgBox("Wilt u Macro1 uitvoeren?", vbQuestion + vbYesNo)Als antwoord = vbJa Bel dan Macro1Einde sub

Ja / Nee Berichtenbox - Sub afsluiten

Hier zullen we met de gebruiker bevestigen of hij door moet gaan met het uitvoeren van een macro. Als op Nee wordt geklikt, verlaat de code de sub, anders wordt de procedure voortgezet.

12345678910 Sub Msgbox_BeforeRunning()Dim antwoord als geheel getalanswer = MsgBox("Wilt u doorgaan?", vbQuestion + vbYesNo)Als antwoord = vbNee, verlaat dan Sub'Enkele code'Einde sub

VBA-berichtenvenster in Access VBA

Alle bovenstaande voorbeelden werken in Access VBA precies hetzelfde als in Excel VBA.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave