Dit artikel laat zien hoe u besturingselementen in UserForms in Excel VBA kunt gebruiken.
VBA heeft de mogelijkheid om formulieren te maken waarmee de gebruiker kan communiceren, zoals factuurformulieren of contactgegevens. Een formulier kan verschillende formulierbesturingselementen bevatten, zoals tekstvakken, keuzelijsten, keuzelijsten en opdrachtknoppen. Dit artikel behandelt de meest populaire besturingselementen die worden gebruikt op gebruikersformulieren, namelijk tekstvakken, labels, keuzelijsten, keuzelijsten, selectievakjes en optiegroepen.
Klik hier voor meer informatie over ingebouwde gebruikersformulieren en het maken van aangepaste gebruikersformulieren in Excel.
Een gebruikersformulier maken
Om een UserForm in Excel VBA te maken, moeten we eerst de . openen VBE-editor.
Om een nieuw gebruikersformulier in uw code in te voegen, selecteert u de Gebruikersformulier optie in het menu Invoegen.
Er verschijnt een nieuw gebruikersformulier in de Projectverkenner en wordt weergegeven in het codevenster aan de rechterkant.
U kunt uw formulier hernoemen met de Eigendommen doos. Dit zou onder je . moeten verschijnen Projectverkenner.
Als het zo zichtbaar is, drukt u op F4 of klik op Weergave, Eigenschappenvenster.
Klik in de Naam eigenschap en hernoem uw formulier.
We kunnen nu beginnen met het vullen van ons formulier met besturingselementen - het tekstvakbesturingselement is het meest populaire besturingselement, samen met het labelbesturingselement en de opdrachtknop.
Om het formulier met besturingselementen te vullen, moeten we de Toolbox inschakelen.
In de Menu, selecteer Bekijk > Gereedschapskist.
Een tekstvak maken
Als u een tekstvak op uw formulier wilt maken, selecteert u het besturingselement Tekstvak in de werkset.
Sleep een doosvorm op het formulier met uw muis, houd de linkerknop ingedrukt en laat de muisknop los.
Aangezien dit het eerste tekstvak is dat we maken, krijgt het de naam TextBox1. Net als bij het formulier kunt u het venster Eigenschappen gebruiken om de naam van het tekstvak te wijzigen.
We kunnen doorgaan met het maken van zoveel tekstvakken in ons formulier als we nodig hebben en ze de juiste naam geven met behulp van de eigenschap Name in het venster Eigenschappen.
Een labelbesturing maken
Een labelbesturing vertelt ons wat het tekstvak zal bevatten. U sleept het formulier op dezelfde manier als voor een tekstvak, en dan kunt u de gewenste tekst in het labelbesturingselement typen, bijvoorbeeld: Voornaam zoals hieronder weergegeven.
Ga net als bij de tekstvakken door met het maken van zoveel als nodig is in het formulier.
Een combobox-besturing maken
Met een keuzelijst (of een vervolgkeuzelijst) kan de gebruiker een keuze maken uit een lijst met waarden. Om een keuzelijst met invoervak te maken, klikt u in de werkset op het besturingselement Combo Box en klikt en sleept u de keuzelijst in uw formulier.
Geef de combobox de juiste naam.
Waarden toevoegen aan de keuzelijst
Om het te vullen met waarden, moeten we coderen in de Initialiseren methode van het gebruikersformulierobject.
Om naar de code achter het formulier (CBF) te gaan, dubbelklikt u op het formulier of klikt u op de codeknop in de Projectverkenner om over te schakelen naar de codeweergave.
Selecteer in de vervolgkeuzelijst aan de linkerkant Gebruikersformulier en selecteer vervolgens in de vervolgkeuzelijst aan de rechterkant Initialiseren.
Typ de volgende code in de Sub en End Sub om de vervolgkeuzelijst te vullen:
1234 | Me.cboState.AddItem "Alabama"Me.cboState.AddItem "Alaska"Me.cboState.AddItem "Arizona"Me.cboState.AddItem "Arkansas" |
We kunnen natuurlijk doorgaan met het vullen van de lijst met de rest van de staten in de VS!
Om het gebruikersformulier uit te voeren om de lijst in actie te zien, 1) schakelt u terug naar de formulierweergave en 2) klikt u in de werkbalk op de knop Loop knop.
Klik op de vervolgkeuzepijl om de lijst te zien.
We kunnen ook een bereik in Excel gebruiken om de keuzelijst met invoervak te vullen.
123456 | Private Sub UserForm_Initialize()Dim rng als bereikVoor elke rng binnen bereik ("A1:A50")Me.cboState.AddItem rng.ValueVolgende belEinde sub |
Hiermee worden alle waarden opgepikt die zijn opgeslagen in het bereik A1 tot A50 en wordt de vervolgkeuzelijst dienovereenkomstig ingevuld.
Een keuzelijstbesturingselement maken
Een List Box-besturingselement werkt op dezelfde manier als een Combo Box-besturingselement, maar stelt ons in staat om alle opties op het formulier in een lijstindeling te zien.
Selecteer het besturingselement Keuzelijst in de werkset en sleep om een keuzelijst op uw formulier te maken.
Moe van het zoeken naar voorbeelden van VBA-codes? Probeer AutoMacro!
Waarden toevoegen aan de keuzelijst
Typ de volgende code in de gebeurtenis Initialiseren van het formulier:
123456 | Private Sub UserForm_Initialize()Dim rng als bereikVoor elke rng binnen bereik ("A1:A50")Me.lstState.AddItem rng.ValueVolgende belEinde sub |
Wanneer we het formulier uitvoeren, wordt de keuzelijst weergegeven zoals weergegeven in de onderstaande afbeelding:
Een controlevakje maken
Selectievakjes stellen de gebruiker in staat om een optie aan of uit te vinken.
Selecteer het selectievakje Controlevak en klik vervolgens in het formulier waar u het wilt hebben.
Wijzig het bijschrift en de naam van het selectievakje in het eigenschappenvenster.
Een optiegroepsbesturingselement maken met optieknoppen
Met een optiegroep kan de gebruiker kiezen uit een aantal beschikbare opties. De eerste stap bij het maken van een optiegroep is om een framebesturingselement aan het formulier toe te voegen en vervolgens de optieknoppen toe te voegen aan het toegevoegde frame. Door dit te doen, zorgen we ervoor dat wanneer we het formulier uitvoeren, er slechts één van de optieknoppen binnen het frame tegelijk kan worden geselecteerd.
Selecteer het frame-besturingselement in de toolbox en sleep om een frame op uw formulier te maken.
Selecteer het besturingselement Keuzerondje in de toolbox en klik vervolgens BINNEN het hierboven gemaakte frame om de optieknop aan het frame toe te voegen. Herhaal indien nodig.
Klik op het frame en 1) wijzig de naam van het frame en het bijschrift. Vervolgens 2) klik op elk van de keuzerondjes en pas het bijschrift aan.
Een opdrachtknop maken om het formulier te verlaten
In dit stadium is de enige manier om het formulier te sluiten de sluitknop in de rechterhoek van de formuliercontrolebalk te gebruiken. Een efficiëntere manier om een formulier af te sluiten, en waar we meer controle over hebben, is door een knop Afsluiten op het formulier te maken. Dit gebeurt door middel van de Command Button Control in de Toolbox.
Selecteer het besturingselement Command Button en klik en sleep vervolgens in uw formulier om de knop te maken.
Gebruik de eigenschap Caption om het bijschrift van de opdrachtknop te wijzigen in OK en de Accelerator in "O"
Het doel van de Accelerator is dat de gebruiker het toetsenbord gebruikt om de knop te activeren, in dit geval Alt+O zou de knop activeren.
Geweldig product. AutoMacro schrijft niet alleen uw code, het leert u terwijl u bezig bent!" - Tony, VK
Kom meer te wetenLees onze 900+ beoordelingen
Code toevoegen aan de opdrachtknop
Om de opdrachtknop te laten werken, moeten we code erachter toevoegen, zodat wanneer op de knop wordt geklikt, de code wordt uitgevoerd. Dit wordt de Click-gebeurtenis van de knop genoemd.
Dubbelklik op de knop in de ontwerpweergave van het formulier om naar de klikgebeurtenis te gaan.
1) De gebeurtenis Click wordt automatisch gemaakt, aangezien dit de gebeurtenis is die het meest wordt gebruikt voor opdrachtknoppen.
2) Als we in de vervolgkeuzelijst Procedure aan de rechterkant zouden klikken, zouden we een lijst zien van alle gebeurtenismethoden die beschikbaar zijn voor de opdrachtknop. Deze lijst verandert afhankelijk van het type controle dat we hebben gemaakt, aangezien er verschillende gebeurtenissen beschikbaar zijn voor verschillende soorten controles.
Typ de volgende code in de gebeurtenis click van de opdrachtknop.
123456789101112131415 | Privé sub cmdOK_Click()Bereik ("E1") = Me.txtVoornaamBereik ("E2") = Mij.txtAchternaamBereik ("E3") = Me.txtCellPhoneBereik ("E4") = Me.cboStateAls Me.ckContactInfo = True DanRange ("E5") = "SMS toegestaan"AndersRange ("E5") = "SMS niet toegestaan"Stop alsIf Me.opt1.Value = True Dan Range ("E6") = Me.opt1.CaptionAls Me.opt2.Value = True, dan is Range ("E6") = Me.opt2.CaptionAls Me.opt3.Value = True, dan is Range ("E6") = Me.opt3.CaptionMij uitladenEinde sub |
We kunnen dan het formulier uitvoeren, de tekstvakken invullen en een keuze maken uit de vervolgkeuzelijst. We klikken vervolgens op OK om de informatie in Excel in te voeren.