/ / Casella combinata multicolore VBA di Excel

Casella combinata multicolore VBA di Excel

Di seguito vedremo un programma in Excel VBA che crea un Userform che contiene a casella combinata multicolore.

L'Userform che stiamo per creare appare come segue:

Casella combinata multicolore in VBA di Excel

Per creare questo Userform, eseguire i seguenti passaggi.

1. Aprire il Visual Basic Editor. Se Project Explorer non è visibile, fai clic su Visualizza, Esplora progetti.

2. Fare clic su Inserisci, Userform. Se la casella degli strumenti non viene visualizzata automaticamente, fare clic su Visualizza, Casella degli strumenti. Lo schermo dovrebbe essere impostato come di seguito.

Impostazione della schermata Userform in Excel VBA

3. Aggiungi l'etichetta, la casella combinata e i pulsanti di comando. Una volta che questo è stato completato, il risultato dovrebbe essere coerente con l'immagine della forma utente mostrata in precedenza. Ad esempio, creare un controllo casella combinata facendo clic su ComboBox dalla casella degli strumenti. Successivamente, puoi trascinare una casella combinata sul modulo utente.

4. È possibile modificare i nomi e le didascalie dei controlli. I nomi sono utilizzati nel codice VBA di Excel. Le didascalie sono quelle che appaiono sullo schermo. È buona norma cambiare i nomi dei controlli, ma qui non è necessario perché in questo esempio abbiamo solo alcuni controlli. Per modificare la didascalia dei pulsanti Userform, label e command, fare clic su View, Properties Window e fare clic su ciascun controllo.

5. Per visualizzare Userform, posizionare un pulsante di comando nel foglio di lavoro e aggiungere la seguente riga di codice:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Ora creeremo Sub UserForm_Initialize. Quando si utilizza il metodo Show per Userform, questo sub verrà eseguito automaticamente.

6. Aprire il Visual Basic Editor.

7. Nell'Esplora progetti, fare clic con il pulsante destro su UserForm1 e quindi scegliere Visualizza codice.

8. Selezionare Userform dall'elenco a discesa a sinistra. Scegli Inizializza dall'elenco a discesa a destra.

9. Aggiungi le seguenti linee di codice:

Private Sub UserForm_Initialize()

ComboBox1.ColumnCount = 2

Dim Films(1 To 5, 1 To 2) As String
Dim i As Integer, j As Integer

Films(1, 1) = "Lord of the Rings"
Films(2, 1) = "Speed"
Films(3, 1) = "Star Wars"
Films(4, 1) = "The Godfather"
Films(5, 1) = "Pulp Fiction"

Films(1, 2) = "Adventure"
Films(2, 2) = "Action"
Films(3, 2) = "Sci-Fi"
Films(4, 2) = "Crime"
Films(5, 2) = "Drama"

ComboBox1.List = Films

End Sub

Spiegazione: La prima riga di codice imposta il numero di colonne della casella combinata su 2. Invece di impostare il numero di colonne in fase di runtime, è inoltre possibile configurare questa impostazione in fase di progettazione. Per ottenere ciò, fare clic con il pulsante destro del mouse sul controllo Casella combinata, fare clic su Proprietà e impostare la proprietà ColumnCount su 2. Quindi, dichiariamo e inizializziamo una matrice bidimensionale. L'ultima riga di codice assegna l'array alla casella combinata.

Ora abbiamo creato la prima parte di Userform. Anche se sembra già pulito, non accadrà ancora nulla quando clicchiamo sui pulsanti di comando sul form utente.

10. Nell'Esplora progetti, fare doppio clic su UserForm1.

11. Fare doppio clic sul pulsante OK.

12. Aggiungi le seguenti linee di codice:

Private Sub CommandButton1_Click()

Unload Me

MsgBox "You selected " & ComboBox1.Value

On Error Resume Next
MsgBox "You like " & ComboBox1.Column(1) & " movies"

End Sub

Nota: queste righe di codice chiudono la forma utente VBA di Excel e visualizzano l'elemento e il genere selezionati. L'istruzione "On Error Resume Next" ignora l'errore quando l'utente compila il suo filmato (in questo caso non è disponibile alcun genere).

13. Fare doppio clic sul pulsante Annulla.

14. Aggiungere la seguente riga di codice:

Private Sub CommandButton2_Click()

Unload Me

End Sub

Risultato quando si seleziona Velocità e si fa clic su OK.

Risultato casella combinata multicolore

Risultato casella combinata multicolore

Leggi anche: