Hoe maak ik berichtenvakfuncties in excel?
Het eerste dat ik over VBA leerde, was hoe je een berichtenvenster moest gebruiken (“msgbox-functie”). Het is als een eenvoudig pop-upvenster in uw Excel-venster waarin u een specifiek bericht kunt weergeven. Als je erover nadenkt, kun je het op twee manieren gebruiken.
- Stuur een bericht naar de gebruiker.
- Krijg een eenvoudig antwoord van de gebruiker.
De meeste VBA-programmeurs gebruiken het in hun macrocodes om ze interactiever te maken en als je het niet weet, wed ik dat je er na het lezen van dit artikel verliefd op zult worden.
Tip van een expert: Als u een VBA-beginner bent, is het misschien een goed idee om meer te leren over het VBA-berichtenvenster.
Daarom wil ik vandaag in dit artikel alle details met u delen over het gebruik van een berichtenvenster in Excel en enkele praktijkvoorbeelden.
…Laten we beginnen.
Syntaxis
=MSGBOX(prompt, [knoppen], [titel], [helpbestand, context])
- prompt Tekenreeksexpressie die wordt gebruikt om als bericht weer te geven. De maximale tekenlengte is 1024, afhankelijk van de tekenbreedte.
- [knoppen] U kunt dit argument gebruiken om knoppen, pictogramstijl, knopidentiteit en berichtvenstermodaliteit op te geven.
- [titel] U kunt dit argument gebruiken om de titeltekst voor uw berichtvenster op te geven.
- [helpfile] Dit argument helpt u bij het specificeren van een helpbestand voor de gebruiker. De gebruiker heeft toegang tot dit helpbestand via de helpknop. Als u een helpbestand opgeeft, is het verplicht om een contextnummer op te geven.
- [context] Numerieke expressie die wordt gebruikt om een Help-onderwerp toe te wijzen vanuit het Help-menu.
Opmerking: in de bovenstaande lijst zijn de argumenten daarboven tussen vierkante haakjes optioneel. U kunt dit overslaan om ze op te geven.
Hoe u een berichtvenster kunt aanpassen en verschillende knoppen kunt gebruiken
U kunt een VBA-berichtenvenster eenvoudig aanpassen met alle beschikbare opties. Laten we deze opties eens bekijken.
#1. vbOKAlleen
Dit geeft je een eenvoudige OK-knop. De gebruiker kan erop klikken na het lezen van het bericht om het te sluiten. U kunt ook een macro gebruiken die wordt uitgevoerd zodra op de knop OK wordt geklikt.
Onder OKOnly()
MsgBox-prompt:= “Dit is een MsgBox”, _
Knoppen:=vbOKOnly, _
Titel: = “Postbus”
Einde ondertitel
#2. vbOKAnnuleren
Deze constante geeft u een knop OK en Annuleren. De gebruiker heeft nu twee opties: op OK drukken om door te gaan of op annuleren om af te sluiten.
Onder OKAnnuleren()
MsgBox prompt:= »Gaat het? », _
Knoppen:=vbOKAnnuleren, _
Titel: = “Postbus”
Einde ondertitel
#3. vbAbortRetryIgnore
Hierdoor kunt u drie knoppen weergeven: Info, Opnieuw proberen en Overslaan. De gebruiker kan de bewerking afbreken, opnieuw proberen of negeren.
Onder OKAnnuleren()
MsgBox prompt:= »Gaat het? », _
Knoppen:=vbOKAnnuleren, _
Titel: = “Postbus”
Einde ondertitel
#4. vbJaNeeAnnuleren
Deze constante geeft drie knoppen weer voor Ja, Nee en Annuleren. Gebruiker kan Ja om te accepteren en door te gaan, Nee om te weigeren of te annuleren om het berichtvenster te sluiten.
Onder JaNeeAnnuleren()
MsgBox Prompt := “Nu heb je drie knoppen”, _
Knoppen:=vbJaNeeAnnuleren, _
Titel: = “Postbus”
Einde ondertitel
#5. vbJaNee
Deze constante geeft twee knoppen weer voor Ja en Nee. De gebruiker kan op Ja klikken om te accepteren en door te gaan of op Nee om te weigeren.
Onder JaNee()
MsgBox Prompt := “Nu heb je twee knoppen”, _
Knoppen:=vbJaNee, _
Titel: = “Postbus”
Einde ondertitel
#6. vbOpnieuw proberenAnnuleren
Nu worden er twee knoppen weergegeven: opnieuw proberen en annuleren. U kunt het gebruiken om de gebruiker te vragen de bewerking opnieuw uit te voeren of deze te annuleren.
Sub RetryCancel()MsgBox Prompt:=”Probeer het opnieuw”, _Buttons:=vbRetryCancel, _Title:=”MsgBox”End Sub
#7. vbReview
Deze constante geeft een pictogram weer in het berichtenvenster, wat aangeeft dat het bericht kritiek is.
Subkritisch()
MsgBox Prompt:= “Dit is van cruciaal belang”, _
Knoppen:=vbKritisch, _
Titel: = “Postbus”
Einde ondertitel
#8. vbVraag
Deze constante kan worden gebruikt bij het stellen van een vraag aan de gebruiker.
Subvraag()
MsgBox Prompt := »Wat nu te doen? », _
Knoppen:=vbVraag, _
Titel: = “Postbus”
Einde ondertitel
#9. vbUitroep
Deze constante geeft een uitroepteken weer bij het bericht.
OnderUitroepteken()
MsgBox Prompt := »Wat nu te doen? », _
Knoppen:=vbUitroep, _
Titel: = “Postbus”
Einde ondertitel
#tien. vbInformatie
Er wordt een pictogram weergegeven dat aangeeft dat het bericht informatie is.
Subinformatie()MsgBox Prompt:=”Wat nu te doen?”, _Buttons:=vbInformation, _Title:=”MsgBox”End Sub
#11. vbDefaultKnop1
Gebruik deze constante om de eerste knop in uw berichtvenster als standaardknop op te geven.
Sub DefaultButton1()MsgBox Prompt:=”Button1 is gemarkeerd?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton1, _Title:=”MsgBox”End Sub
#12. vbDefaultKnop2
Gebruik deze constante om de tweede knop in uw berichtvenster als standaardknop op te geven.
Sub DefaultButton2()MsgBox Prompt:=”Button2 is gemarkeerd?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton2, _Title:=”MsgBox”End Sub
#13. vbDefaultKnop3
Gebruik deze constante om de derde knop in uw berichtenbox op te geven als de standaardknop.
Sub DefaultButton3()MsgBox Prompt:=”Button3 is gemarkeerd?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton3, _Title:=”MsgBox”End Sub
#14. vbDefaultKnop4
Gebruik deze constante om de vierde knop in uw berichtenbox op te geven als de standaardknop.
Sub DefaultButton4()MsgBox Prompt:=”Button4 is gemarkeerd?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton4, _Title:=”MsgBox”End Sub
#15. vbApplicatieModaal
Deze constante zal de applicatie (Excel) onderbreken. De gebruiker moet de msgbox beantwoorden om de applicatie te kunnen gebruiken.
Onder OKOnly()
MsgBox-prompt:= “Dit is een MsgBox”, _
Knoppen:=vbOKOnly, _
Titel: = “Postbus”, _
Einde ondertitel
#16. vbSysteemModaal
Deze constante zal alle toepassingen in uw besturingssysteem opschorten. De gebruiker moet eerst op het berichtenvenster reageren.
Sub ApplicationModal()MsgBox Prompt := »Dit is de modale toepassing», _Buttons :=vbOK + vbApplicationModal, _Title := »MsgBox »End Sub
#17. vbMsgBoxHelpButton
Gebruik deze constante om een helpknop aan uw mailbox toe te voegen. U kunt een helpbestand en een contextnummer toevoegen om de helpknop te gebruiken.
Sub HelpButton()MsgBox Prompt:=”Gebruik de Help-knop”, _Buttons:=vbOK + vbMsgBoxHelpButton, _Title:=”MsgBox”, _HelpFile:=”C:UsersPuneet GogiaDesktopsamplehelp.chm”, _Context:=101End Sub
Zodra de gebruiker op de helpknop klikt, verschijnt er een helpmenu.
#18. vbMsgBoxSetForeground
Deze constante helpt u om van uw berichtenvenster een voorgrondvenster te maken.
Sub SetForeground()MsgBox Prompt:=”Deze MsgBox staat op de voorgrond”, _Buttons:=vbOK + vbMsgBoxSetForeground, _Title:=”MsgBox”End Sub
#19. vbMsgBoxRechts
De tekst wordt rechts uitgelijnd met deze constante.
Onder MsgBoxRight()
MsgBox Prompt:= “De tekst staat aan de rechterkant”, _
Knoppen:=vbOK + vbMsgBoxRight, _
Titel: = “Postbus”
Einde ondertitel
#20. vbMsgBoxRtlReading
Met behulp van deze constante wordt het berichtenvenster naar rechts gespiegeld. Deze constante is primair ontworpen voor de Hebreeuwse en Arabische systemen.
Onder MsgBoxRtlRead()
MsgBox Prompt:= “Deze doos is omgevallen”, _
Knoppen:=vbOK + vbMsgBoxRtlRead, _
Titel: = “Postbus”
Einde ondertitel
Waarden retourneren
Elke keer dat een gebruiker op het berichtenvenster reageert door op een van de knoppen te klikken, wordt er een nummer gegenereerd. Hiermee kunt u identificeren op welke knop de gebruiker heeft geklikt.
Constante | Waarde | Beschrijving |
---|---|---|
vbOK | 1 | OKE |
vbAnnuleren | 2 | Annuleren |
vbAfbreken | 3 | Abortus |
vbProbeer het opnieuw | 4 | Opnieuw beginnen |
vbOverslaan | 5 | Negeren |
vbJa | 6 | Ja |
vbNee | 7 | Nee |
Voorbeelden uit de echte wereld van het gebruik van de VBA-berichtenboxfunctie in Excel
Hier heb ik enkele voorbeelden van VBA-berichtenboxen uit de praktijk opgesomd en ik ben er zeker van dat deze voorbeelden u zullen inspireren om het te gebruiken.
#1. Voer een macro uit met een VBA MsgBox
Met behulp van de msgbox-functie kunt u nu een gebruiker vragen voordat hij een macro uitvoert. Laten we naar de onderstaande macro kijken om het te begrijpen.
Onder SaveThis()
Resultaat dimmen als geheel getal
Resultaat = MsgBox(“Wilt u dit bestand opslaan?”, vbOKCancel)
Als Resultaat = vbOK Dan
ActiveWorkbook.Opslaan
Einde ondertitel
U kunt de gebruiker vragen de werkmap op te slaan. Als de gebruiker op de knop OK klikt, slaat de macrocode de werkmap op.
#2. Voeg een tabel in een berichtvenster in
U kunt vbTab gebruiken om tabelgegevens in het berichtvenster in te voeren. In dit voorbeeld begint de tabel vanaf cel A1.
Onder AddToMsgBox()
Dim bericht als tekenreeks
Dim r als int
Dim c als int
Dim rc als int
Dim cc als int
Dim myRows als bereik
Mijnkolommen dimmen als bereik
Bericht = “”
Stel myRows = Range(“A:A”) in
Stel myColumns = Range(“1:1”) in
rc = Application.CountA(mijnRows)
cc = Application.CountA(mijnKolommen)
Voor r = 1 tot rcVoor c = 1 tot cc
Bericht = Bericht & Cellen(r, c).Tekst
Als c <= cc Dan
Bericht = Bericht & vbTab
volgende cMsg = Bericht & vbCrLf
Volgende r
BerichtBox Bericht
Einde ondertitel
#3. Toon berichtvenster bij het openen van een bestand
Als je naar de onderstaande macro kijkt, heb ik auto_open gebruikt om een bericht te maken dat wordt weergegeven wanneer de werkmap wordt geopend.
Onder auto_open()
MsgBox “Welkom bij Exceladvisor en bedankt voor het downloaden van dit bestand” _
+ vbNewLine + vbNewLine + “Hier vindt u een gedetailleerde uitleg van de MsgBox-functie. » _
+ vbNewLine + vbNewLine + “En vergeet niet om andere coole dingen te bekijken. »
Einde ondertitel
Afhaalrestaurants
- U kunt geen vier knoppen aan een berichtvenster toevoegen als u de Help-knop niet als vierde knop gebruikt.
- Om een helpbestand voor uw berichtenbox te maken, kunt u het volgende voorbeeldbestand raadplegen.
Voorbeeld bestand
Download hier dit voorbeeldbestand voor meer informatie.
Conclusie
De berichtenbox helpt u niet alleen een boodschap over te brengen, maar maakt ook een creatieve indruk op de gebruiker. U kunt ze een bericht sturen en een eenvoudig antwoord krijgen.
En zoals ik al zei: als VBA nieuw voor je is, is het leren gebruiken van een berichtenvenster een van de beste dingen. Ik hoop dat dit artikel je heeft geholpen dichter bij je droom te komen om VBA onder de knie te krijgen, maar vertel me nu één ding.
Vind je de MsgBox-functie een van de coolste dingen in VBA?
Zorg ervoor dat u uw mening met mij deelt in het opmerkingengedeelte. Ik hoor graag van u en vergeet niet deze tip met uw vrienden te delen.
Meer informatie over VBA