In dit artikel ga ik je uitleg geven over het gebruik van berichtboxen binnen Excel VBA. Binnen Excel kun je gebruik maken van twee soorten berichtboxen namelijk de msgbox en de inputbox. Er zijn een aantal overeenkomsten en duidelijke verschillen tussen deze twee berichtboxen en deze zet ik voor je op een rijtje
VBA Msgbox
De msgbox ben je hoogstwaarschijnlijk al een keer eerder tegengekomen. Immers het allereerste script dat je meestal leert in een programmeertaal is het tonen van een msgbox met de tekst “Hello World”. Er zijn echter nog een stuk meer mogelijkheden met deze msgbox. Je kunt namelijk naast hard gecodeerde tekst ook nog de waarde van variabelen onderdeel laten uitmaken van je tekst.
Ik zal dit duidelijk maken aan de hand van een voorbeeld. Stel je hebt een stuk code waarin je de BMI (body mass index) van een persoon berekent. De BMI waarde die uit de code is komen rollen is opgeslagen in een variabele genaamd ‘BMIwaarde’. Nu wil je VBA een net bericht laten tonen waarin deze BMI in een nette zin geplaatst is. Je schrijft dan de volgende regel code
MsgBox "Je BMI heeft een waarde van " & BMIwaarde & ". Je lijdt aan ernstig overgewicht"
De msgbox die dan verschijnt ziet er als volgt uit.

Belangrijkste Parameters bij een vba msgbox:
- Prompt: Dit is het bericht dat wordt weergegeven in het dialoogvenster.
- Buttons: Bepaalt welke knoppen worden weergegeven. Voorbeelden zijn
vbOKOnly,vbYesNo,vbYesNoCancel, enz. - Title: Hiermee bepaal je de titel van het dialoogvenster.
VBA Inputbox
De inputbox heeft zoals de naam het al aangeeft minder de functie om een bepaalde waarde of tekst te tonen aan de gebruiker, maar om input te krijgen van de gebruiker waar het VBA script vervolgens weer mee aan het werk gaat. Laten we hier wederom het voorbeeld gebruiken van de BMI index berekening zodat je in een praktijkvoorbeeld kunt zien hoe je de inputbox kunt toepassen. Net zaten we bij de msgbox aan het einde van de BMI berekening en gebruikten wij de msgbox om je het eindresultaat te tonen.
De inputbox kun je goed gebruiken aan het begin van de berekening wanneer je bij de gebruiker een aantal gegevens opvraagt. Voor de berekening is namelijk geslacht, leeftijd, gewicht en lengte nodig. Je kunt deze informatie opvragen door een viertal inputboxen op te zetten. Het netste is om voor meerdere gegevens een inputformulier te gebruiken. Dan kun je namelijk meer vragen en antwoorden verwerken in één scherm, echter dit is wel een stuk complexer om op te zetten. Je kunt bijvoorbeeld het gewicht via een inputbox ophalen door de onderstaande regel code te schrijven.
Gewicht = InputBox("Wat is je gewicht in kg?")
De msgbox die dan verschijnt ziet er als volgt uit.

Belangrijkste Parameters bij een VBA inputbox:
- Prompt: De tekst die de gebruiker vraagt om een invoer te doen.
- Title: De titel van het invoervenster.
- Default: Een standaardwaarde die wordt weergegeven in het tekstvak van de
InputBox.
Let bij het formuleren van je vraag in een inputbox goed op dat de gebruiker precies het antwoord in vult dat je zoekt. Als een gebruiker bijvoorbeeld zijn/haar gewicht in grammen had ingevuld had de BMI berekening een hele gekke uitslag gekregen. Er zijn echter wel manieren om dit op te kunnen vangen. Ik las net dat de zwaarste persoon op aaarde 635 kg weegt. Hiermee kun je dus wel concluderen dat de input een getal moet zijn dat kleiner dan 635 is. Je gaat na het antwoord van de gebruiker toetsen of hij aan deze voorwaarde voldoet.
Toepassing VBA Msgbox
In de onderstaande code heb ik een For Next loop gebruikt om 5 pogingen te doen om een goed antwoord te krijgen. De eerste controle (of het antwoord überhaupt een getal is) voeren we uit door middel van een If statement. Door te schrijven Isnumeric (is deze waarde numeriek) en tussen haakjes de variabele van het antwoord te plaatsen kijk je of het antwoord op deze vraag True is. Is dit het geval dan test je de volgende vraag. Valt dit getal tussen de o en 635? Is dit niet het geval dan tonen we een msgbox die de gebruiker in de goede richting wijst. Na 5 pogingen stopt de loop en breken we de berekening af.
Mocht je vragen hebben over de onderstaande code of overige zaken. Laat het weten in de reacties!
Sub VBinputbox()
For i = 1 To 5
gewicht = InputBox("Wat is je gewicht in kg?")
If IsNumeric(gewicht) = True Then
If gewicht > 1 And gewicht <= 635 Then
Exit For
Else
MsgBox "Graag een getal invoeren kleiner of gelijk aan 635"
End If
Else
MsgBox "graag een getal invoeren ipv tekst"
End If
If i = 5 Then
MsgBox "Blijkbaar is deze vraag te lastig voor je. We stoppen de berekening"
Exit Sub
End If
Next i
End Sub
Pingback:Hoe gebruik ik een If statement in VBA? - Macro Excel Advies
Pingback:Mijn eerste VBA script - Macro Excel Advies
Pingback:Select Case in een macro - Macro Excel Advies
Pingback:Datum en tijd functies in VBA - Macro Excel Advies
Pingback:Macro starten met events - Macro Excel Advies
Pingback:Error handling toepassen in je macro - Macro Excel Advies
Pingback:De range.find methode VBA Excel -
Pingback:Kladblokjes uitlezen in VBA -
Pingback:VBA Do loops -