Menu Sluiten

Select Case in een macro

Select case macro vba

In dit artikel gaan we het Select Case Statement in een macro behandelen. Met behulp van het Select Case Statement kun je net als bij een  If Statement een serie uitkomsten uitwerken en daar vervolgacties aan koppelen. Ik denk dat het vooral persoonlijk is welke van de twee je prefereert boven de ander. Ik zal een aantal praktijkvoorbeelden uitwerken waarin we het Select Case Statement behandelen. Tenslotte behandel ik nog de verschillen tussen de Select Case en het If Statement. 

 

Select Case met tekst

In het eerste voorbeeld maken we een eenvoudig Select Case Statement waarbij de uitkomsten gevormd worden door tekst (String). Laten we zeggen dat we het aantal vakantiedagen van een aantal werknemers willen ophalen. Voor het gemak plaatsen we deze getallen als harde waarden in de code.

Sub SelectCaseTekst()

    werknemer = InputBox("Wat is de naam van de werknemer")
    
    Select Case werknemer
        Case "Martin"
            Vakantiedagen = 100
        Case "Piet"
            Vakantiedagen = 300
        Case "Kees"
            Vakantiedagen = 50
        Case "Oscar"
            Vakantiedagen = 10
    End Select
    
    MsgBox Vakantiedagen

End Sub

Je zult zien dat je het aantal vakantiedagen krijgt te zien in de msgbox van de werknemer die je in de inputbox ingevuld hebt.

Select Case met getallen

Deze Select Case is exact gelijk qua structuur aan het Select Case Statement met tekst. Je hebt alleen een stuk meer vergelijkingsoperatoren waarvan je gebruik kunt maken. Naast de ‘=’ (gelijk aan) en de ‘<>’ (niet gelijk aan) kun je ook gebruik maken van:

  • ‘>’ (groter dan)
  • ‘<‘ (kleiner dan)
  • >= (groter dan of gelijk aan)
  • <= (kleiner dan of gelijk aan)

Als voorbeeld pakken we nu een Select Case Statement waarbij een gebruiker een leeftijd in kan vullen. Het Case Statement bepaalt dan of deze gebruiker volwassen of onvolwassen is.

Sub SelectCaseGetal()

    leeftijd = InputBox("Wat is je leeftijd van de werknemer")
    
    Select Case leeftijd
        Case Is >= 18
            gebruiker = "volwassen"
        Case Is < 18
            gebruiker = "onvolwassen"
    End Select
    
    MsgBox "Je bent " & gebruiker

End Sub

Select Case Statement versus If Statement 

In de voorgaande praktijkvoorbeelden van het Select Case Statement is je vast opgevallen dat deze lijkt op een If Statement . In alle gevallen kun je ook eigenlijk beide Statements gebruiken. Er is wel een situatie waarin een Select Statement prettiger te lezen is dan een If Statement. Dit is in het geval van een Case met veel mogelijke uitkomsten hebt waarbij dezelfde actie moet worden uitgevoerd. Indien je hiervoor een If Statement gebruikt zul je voor elke uitkomst een ‘Or’ Operator moeten plaatsen. In het geval van een Select Case Statement kun je deze uitkomsten gewoon achter elkaar plaatsen gescheiden door een simpele komma. In het onderstaande voorbeeld proberen we aan de hand van het soort accessoire het product te achterhalen. Met een Select Case Statement zou je dat als volgt schrijven

Select Case accessoire
    Case "fietsbel", "trapper", "fietsketting", _
         "binnenband", "buitenband", "achterlicht"
         Product = "fiets"
End Select

Nu gaan we exact dezelfde situatie verwerken, maar dan door een If Statement te gebruiken.

If accessoire = "fietsbel" Or accessoire = "trapper" _
   Or accessoire = "fietsketting" Or accessoire = "binnenband" _
   Or accessoire = "buitenband" Or accessoire = "achterlicht" Then
         Product = "fiets"
End If

Je kunt duidelijk zien dat het Select Case Statement in de macro een stuk korter en duidelijker is. 

Ik hoop dat het nu voor jou een stuk duidelijker geworden is hoe je een Select Case in een macro moet gebruiken. Heb je toch nog vragen? Laat het weten in de reacties!

Heeft dit artikel je geholpen?

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *