Excel VBA dipendenti caselle combinate
Di seguito vedremo un programma in Excel VBA che crea un form che contiene caselle combinate dipendenti. Il form ci accingiamo a creare look come segue:
L’utente seleziona Animali da un elenco a discesa. Di conseguenza, l’utente può selezionare un animale da un secondo elenco a discesa.
L’utente seleziona Sports da un elenco a discesa. Di conseguenza, l’utente può selezionare uno sport da un secondo elenco a discesa.
Per creare questo form, eseguire i seguenti passaggi.
-
Aprire il Visual Basic Editor. Se il progetto Explorer non è visibile, fare clic su Visualizza, progetti.
-
Fare clic su Inserisci, Userform. Se la Casella degli strumenti non viene visualizzata automaticamente, fare clic su Visualizza, Strumenti. Lo schermo dovrebbe essere impostato come di seguito.
-
Aggiungere le caselle combinate (primo a sinistra, il secondo a destra) e il pulsante di comando. Una volta che questo è stato completato, il risultato deve essere coerente con l’immagine del Userform mostrato in precedenza. Ad esempio, creare un controllo casella combinata facendo clic sul ComboBox dalla Casella degli strumenti.
Successivamente, è possibile trascinare una casella combinata al form utente.
-
È possibile modificare i nomi e le didascalie dei controlli. I nomi sono utilizzati nel codice VBA di Excel. Le didascalie sono quelli che appaiono sullo schermo. È buona norma cambiare i nomi dei controlli, ma non è necessario qui perché abbiamo solo un paio di controlli in questo esempio. Per modificare la didascalia del pulsante di form e di comando, fare clic su Visualizza, Finestra Proprietà e fare clic su ogni controllo.
-
Per mostrare il form, inserire un pulsante di comando nel foglio di lavoro e aggiungere la riga di codice seguente:
Private Sub CommandButton1_Click() UserForm1.Show End Sub
Ora stiamo andando a creare l’UserForm_Initialize Sub. Quando si utilizza il metodo Show per il form, verrà automaticamente eseguito questo sub.
-
Aprire il Visual Basic Editor.
-
In Esplora progetti, fare clic destro su UserForm1 e quindi fare clic su Visualizza codice.
-
Scegliere Userform dall’elenco a discesa sinistra. Scegli inizializzazione dall’elenco a discesa a destra.
-
Aggiungere le seguenti righe di codice:
Private Sub UserForm_Initialize() With ComboBox1 .AddItem "Animals" .AddItem "Sports" .AddItem "Food" End With End Sub
Spiegazione: Queste linee di codice riempire la prima casella combinata.
Abbiamo creato la prima parte del form utente. Anche se sembra già ordinato, nulla accadrà ancora quando si seleziona un elemento dalla prima casella combinata.
-
In Esplora progetti, fare doppio clic su UserForm1.
-
Fare doppio clic sulla prima casella combinata.
-
Aggiungere le seguenti righe di codice:
Private Sub ComboBox1_Change() Dim index As Integer index = ComboBox1.ListIndex ComboBox2.Clear Select Case index Case Is = 0 With ComboBox2 .AddItem "Dog" .AddItem "Cat" .AddItem "Horse" End With Case Is = 1 With ComboBox2 .AddItem "Tennis" .AddItem "Swimming" .AddItem "Basketball" End With Case Is = 2 With ComboBox2 .AddItem "Pancakes" .AddItem "Pizza" .AddItem "Chinese" End With End Select End Sub
Spiegazione: Excel VBA utilizza il valore dell’indice variabile per testare ogni successiva istruzione Case per vedere con quali elementi la seconda casella combinata deve essere riempito. Passare attraverso il nostro link : / VBA-esempi-Select-Case [Select Case]
programma per imparare di più sulla struttura Select Case.
-
Fare doppio clic sul pulsante Importa.
-
Aggiungere il seguente riga di codice:
Private Sub CommandButton1_Click() Range("A1").Value = ComboBox2.Value End Sub
Risultato: