ComboBox VBA

ComboBox consentire agli utenti di selezionare un'opzione da un elenco di menu a discesa. I ComboBox possono essere creati in UserForms VBA o con un foglio di lavoro Excel. In questo tutorial imparerai come creare e manipolare ComboBox in VBA e nei fogli di lavoro Excel.

Se vuoi imparare come creare una casella di riepilogo, fai clic qui: Casella di riepilogo VBA

Se vuoi imparare come creare una casella di controllo, fai clic qui: Casella di controllo VBA

Crea un ComboBox in un foglio di lavoro Excel

Per inserire un ComboBox nel foglio di lavoro, devi andare su Scheda Sviluppatore, clicca Inserire e in Controlli ActiveX scegli Combo box:

Immagine 1. Inserisci un ComboBox nel foglio di lavoro

Quando selezioni il ComboBox che hai inserito, puoi fare clic su Proprietà sotto il Scheda Sviluppatore:

Immagine 2. Modifica proprietà ComboBox

Qui puoi impostare diverse proprietà del ComboBox. Per iniziare, abbiamo cambiato l'attributo Nome a cmbComboBox. Ora possiamo usare ComboBox con questo nome nel codice VBA.

Popolare un ComboBox nel codice VBA

Per prima cosa, dobbiamo popolare il ComboBox con i valori. Nella maggior parte dei casi, è necessario compilare un ComboBox quando viene aperta la cartella di lavoro. Per questo motivo, dobbiamo inserire un codice per popolare il ComboBox in oggetto cartella di lavoro, procedura Aprire. Questa procedura viene eseguita ogni volta che un utente apre la cartella di lavoro. Ecco il codice:

123456789 Con Sheet1.cmbComboBox.AddItem "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Termina con

Quando fai clic sul menu a discesa, otterrai 5 nomi tra cui scegliere (John, Michael, Jennifer, Lilly e Robert):

Immagine 3. Popolare il ComboBox in VBA

Popolare un ComboBox da un intervallo di celle

Un altro modo possibile per popolare un ComboBox è lasciare che un utente lo faccia. Un ComboBox può essere collegato all'intervallo di celle. In questo approccio, ogni volta che un utente immette un nuovo valore nell'intervallo di celle, il ComboBox si aggiornerà con quel valore.

Se vuoi abilitarlo, devi andare su Proprietà del ComboBox e impostare l'attributo ListFillRange all'intervallo di celle (nel nostro caso E2:E5):

Immagine 4. Popolare il ComboBox dall'intervallo di celle

Abbiamo collegato il nostro ComboBox con la gamma E2:E5, dove mettiamo i nomi che vogliamo (Nathan, Harry, George, Roberta). Di conseguenza, il ComboBox è ora popolato con questi nomi:

Immagine 5. ComboBox popolato dall'intervallo di celle

Ottieni un elemento selezionato di un ComboBox in VBA

Lo scopo di un ComboBox è ottenere una scelta da parte dell'utente. Per recuperare una scelta dell'utente, è necessario utilizzare questo codice:

123 Dim strSelectedItem As VariantstrSelectedItem = Sheet1.cmbComboBox.Value

La selezione degli utenti è nell'attributo Valore di Foglio1.cmbComboBox oggetto. Questo valore è assegnato alla variabile strSelectedItem:

Immagine 6. Ottieni un valore selezionato dal ComboBox in VBA

Abbiamo selezionato Giulia nel ComboBox ed eseguito la procedura. Come puoi vedere nell'immagine 5, il valore di strSelectedItem è Giulia, che è il valore che abbiamo selezionato. Ora puoi elaborare ulteriormente questa variabile nel codice.

Cancella una casella combinata

Se vuoi cancellare un ComboBox in VBA, devi usare Chiaro metodo di Foglio1.lstComboBox oggetto. Eliminerà tutti gli elementi dal ComboBox. Ecco il codice:

1 Sheet1.cmbComboBox.Clear

Quando eseguiamo il codice, otteniamo il ComboBox vuoto:

Immagine 7. Cancella il ComboBox

Usa un ComboBox in un modulo utente

Come accennato, Combobox è più spesso utilizzato in Userforms. Per spiegare come puoi farlo, inseriremo prima un Userform. Nell'editor VBA, fare clic con il pulsante destro del mouse su Nome modulo, fare clic su Inserire e scegli Modulo utente:

Immagine 8. Inserisci un modulo utente

Per visualizzare i controlli per l'inserimento, è necessario abilitare il Cassetta degli attrezzi. Per farlo, clicca suCassetta degli attrezzi icona nella barra degli strumenti. Successivamente, otterrai le finestre con tutti i controlli disponibili. Puoi cliccare su Combo box per crearlo nel form utente.

Immagine 9. Inserisci un ComboBox nel form utente

Chiameremo il ComboBox cmbComboBox. Per popolarlo con i valori, dobbiamo inserire il seguente codice nel metodo Inizializzare dell'oggetto Modulo utente:

12345678910111213 Private Sub UserForm_Initialize()Con UserForm1.cmbComboBox.AddItem "John".AddItem "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Termina conFine sottotitolo

Questo codice si attiva ogni volta che un utente esegue il form utente e popola il Combobox con questi 5 nomi:

Immagine 10. Il ComboBox con i valori nel form utente

Se si desidera ottenere il valore selezionato dal ComboBox, è necessario utilizzare la stessa logica per il Combobox in un foglio di lavoro, come spiegato in precedenza nell'articolo.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave