ComboBoxen kunnen gebruikers een optie selecteren in een vervolgkeuzelijst. ComboBoxen kunnen worden gemaakt in VBA UserForms of met een Excel-werkblad. In deze zelfstudie leert u hoe u ComboBoxen kunt maken en manipuleren in VBA en in Excel-werkbladen.
Als je wilt leren hoe je een Listbox maakt, klik dan hier: VBA Listbox
Als u wilt leren hoe u een Checkbox maakt, klik dan hier: VBA Checkbox
Maak een ComboBox in Excel-werkblad
Om een ComboBox in het werkblad in te voegen, moet je naar de Tabblad Ontwikkelaars, Klik Invoegen en kies onder ActiveX-besturingselementen: combobox:
Afbeelding 1. Voeg een ComboBox in het werkblad in
Wanneer u de ComboBox selecteert die u hebt ingevoegd, kunt u klikken op Eigendommen onder de Tabblad Ontwikkelaars:
Afbeelding 2. Eigenschappen van ComboBox wijzigen
Hier kunt u verschillende eigenschappen van de ComboBox instellen. Om te beginnen hebben we het attribuut gewijzigd: Naam tot cmbComboBox. Nu kunnen we de ComboBox met deze naam in VBA-code gebruiken.
Vul een ComboBox in VBA-code in
Eerst moeten we de ComboBox vullen met waarden. In de meeste gevallen moet een ComboBox worden gevuld wanneer de werkmap wordt geopend. Daarom moeten we een code plaatsen om de ComboBox in object te vullen Werkboek, procedure Open. Deze procedure wordt elke keer uitgevoerd als een gebruiker de werkmap opent. Hier is de code:
123456789 | Met Sheet1.cmbComboBox.Voeg item "Jan" toe.Voeg item "Michael" toe.Voeg item "Jennifer" toe.Voeg item "Lilly" toe.Voeg item "Robert" toeEindigt met |
Wanneer u op het vervolgkeuzemenu klikt, krijgt u 5 namen om uit te kiezen (John, Michael, Jennifer, Lilly en Robert):
Afbeelding 3. Vul de ComboBox in VBA
Een ComboBox vullen vanuit een cellenbereik
Een andere mogelijke manier om een ComboBox te vullen is om het een gebruiker te laten doen. Aan het cellenbereik kan een ComboBox worden gekoppeld. Bij deze benadering wordt elke keer dat een gebruiker een nieuwe waarde invoert in het cellenbereik, de ComboBox bijgewerkt met die waarde.
Als u dit wilt inschakelen, moet u naar de Eigendommen van de ComboBox en stel het attribuut in LijstVullenBereik naar het cellenbereik (in ons geval E2:E5):
Afbeelding 4. Vul de ComboBox uit het cellenbereik
We hebben onze ComboBox gekoppeld aan de reeks E2:E5, waar we namen plaatsen die we willen (Nathan, Harry, George, Roberta). Als gevolg hiervan is de ComboBox nu gevuld met deze namen:
Afbeelding 5. Gevulde ComboBox uit het cellenbereik
Krijg een geselecteerd item van een ComboBox in VBA
Het doel van een ComboBox is om de gebruiker een keuze te geven. Om een gebruikerskeuze op te halen, moet u deze code gebruiken:
123 | Dim strSelectedItem As VariantstrSelectedItem = Blad1.cmbComboBox.Value |
De gebruikersselectie staat in het attribuut Waarde van Blad1.cmbComboBox object. Deze waarde wordt toegewezen aan de variabele strSelectedItem:
Afbeelding 6. Haal een geselecteerde waarde uit de ComboBox in VBA
Wij selecteerden Julia in de ComboBox en voerde de procedure uit. Zoals je kunt zien in afbeelding 5, is de waarde van de strSelectedItem is Julia, wat de waarde is die we hebben geselecteerd. Nu kun je deze variabele verder in de code verwerken.
Een combobox wissen
Als u een ComboBox in VBA wilt wissen, moet u gebruiken Duidelijk methode van Blad1.lstComboBox object. Het zal alle items uit de ComboBox verwijderen. Hier is de code:
1 | Blad1.cmbComboBox.Clear |
Wanneer we de code uitvoeren, krijgen we de lege ComboBox:
Afbeelding 7. Wis de ComboBox
Gebruik een ComboBox in een gebruikersformulier
Zoals we al zeiden, wordt Combobox het meest gebruikt in Userforms. Om uit te leggen hoe je dat kunt doen, voegen we eerst een Userform in. Klik in de VBA-editor met de rechtermuisknop op Modulenaam, klik op Invoegen en kies Gebruikersformulier:
Afbeelding 8. Een gebruikersformulier invoegen
Om bedieningselementen voor het invoegen weer te geven, moet u de Gereedschapskist. Klik hiervoor op deGereedschapskist pictogram in de werkbalk. Daarna krijgt u de vensters met alle beschikbare bedieningselementen. U kunt klikken op ComboBox om het aan te maken in het gebruikersformulier.
Afbeelding 9. Een ComboBox invoegen in het gebruikersformulier
We zullen de ComboBox een naam geven cmbComboBox. Om het te vullen met waarden, moeten we de volgende code in de methode plaatsen: Initialiseren van het object Gebruikersformulier:
12345678910111213 | Private Sub UserForm_Initialize()Met UserForm1.cmbComboBox.Voeg item "Jan" toe.Voeg item "Michael" toe.Voeg item "Jennifer" toe.Voeg item "Lilly" toe.Voeg item "Robert" toeEindigt metEinde sub |
Deze code wordt elke keer geactiveerd als een gebruiker het gebruikersformulier uitvoert en de combobox vult met deze 5 namen:
Afbeelding 10. De ComboBox met waarden in het gebruikersformulier
Als u geselecteerde waarde uit de ComboBox wilt halen, moet u dezelfde logica gebruiken voor de Combobox in een werkblad, wat eerder in het artikel is uitgelegd.