/ / Loop through Controls in Excel VBA

Loop door besturingselementen in Excel VBA

Met slechts een paar regels code kunnen we dat gemakkelijk doorlusbesturing op een Excel VBA Userform. Het Userform dat we gaan maken ziet er als volgt uit:

Loop door besturingselementen in Excel VBA

Om dit gebruikersformulier aan te maken, voert u de volgende stappen uit.

1. Open de Visual Basic-editor. Als de Projectverkenner niet zichtbaar is, klikt u op Beeld, Projectverkenner.

2. Klik op Invoegen, Gebruikersformulier. Als de Toolbox niet automatisch verschijnt, klikt u op Beeld, Werkset. Uw scherm moet worden ingesteld zoals hieronder.

Gebruikersformulier Scherminstellingen in Excel VBA

3. Voeg het label toe, schakel selectievakjes in (eerst bovenaan, de tweede onder de eerste, enzovoort) en de opdrachtknop. Zodra dit is voltooid, moet het resultaat consistent zijn met de afbeelding van het eerder weergegeven gebruikersformulier. Maak bijvoorbeeld een selectievakje door op CheckBox in de Toolbox te klikken. Vervolgens kunt u een selectievakje op het gebruikersformulier slepen.

4. U kunt de namen en bijschriften van de bedieningselementen wijzigen. Namen worden gebruikt in de Excel VBA-code. Onderschriften zijn diegene die op je scherm verschijnen. Het is een goede gewoonte om de namen van de besturingselementen te wijzigen, maar dit is hier niet nodig, omdat we in dit voorbeeld slechts enkele besturingselementen gebruiken. Als u het bijschrift van het gebruikersformulier, het label, de selectievakjes en de opdrachtknop wilt wijzigen, klikt u op Beeld, Venster Eigenschappen en klikt u op elk besturingselement.

5. Om het gebruikersformulier weer te geven, plaatst u een opdrachtknop op uw werkblad en voegt u de volgende coderegel toe:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

We hebben nu het eerste deel van het gebruikersformulier gemaakt. Hoewel het er al goed uitziet, zal er nog niets gebeuren als we op de knop Wissen klikken.

6. Open de Visual Basic-editor.

7. Dubbelklik in de projectverkenner op UserForm1.

8. Dubbelklik op de knop Wissen.

9. Voeg de volgende coderegels toe:

Private Sub CommandButton1_Click()

Dim contr As control

For Each contr In UserForm1.Controls
    If TypeName(contr) = "CheckBox" Then
        contr.Value = False
    End If
Next

End Sub

Uitleg: Excel VBA doorloopt alle bedieningselementen op het gebruikersformulier. De functie TypeName wordt gebruikt om de selectievakjes uit te vinken. Als een selectievakje is ingeschakeld, schakelt Excel VBA het selectievakje uit. contr wordt hier willekeurig gekozen, je kunt elke naam gebruiken. Vergeet niet om naar deze naam te verwijzen in de rest van uw code.

Resultaat wanneer u op de knop Wissen klikt:

Doorloop het besturingsresultaat

Lees ook: