/ / Passa attraverso i controlli in VBA di Excel

Passa attraverso i controlli in VBA di Excel

Con solo poche righe di codice, possiamo facilmente scorrere i controlli su un Userform VBA di Excel. L'Userform che stiamo per creare appare come segue:

Passa attraverso i controlli 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, seleziona le caselle (prima in alto, la seconda sotto la prima e così via) e il pulsante 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 di controllo facendo clic su CheckBox dalla casella degli strumenti. Successivamente, è possibile trascinare una casella di controllo 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 di Userform, etichetta, caselle di controllo e pulsante di comando, fare clic su Visualizza, Finestra Proprietà 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 abbiamo creato la prima parte di Userform. Anche se sembra già pulito, non accadrà ancora nulla quando clicchiamo sul pulsante Cancella.

6. Aprire il Visual Basic Editor.

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

8. Fare doppio clic sul pulsante Cancella.

9. Aggiungi le seguenti linee di codice:

Private Sub CommandButton1_Click()

Dim contr As control

For Each contr In UserForm1.Controls
    If TypeName(contr) = "CheckBox" Then
        contr.Value = False
    End If
Next

End Sub

Spiegazione: Excel VBA scorre tutti i controlli sul modulo utente. La funzione TypeName viene utilizzata per filtrare i controlli della casella di controllo. Se un controllo casella di controllo, Excel VBA deseleziona la casella di controllo. contr è scelto a caso qui, è possibile utilizzare qualsiasi nome. Ricorda di fare riferimento a questo nome nel resto del tuo codice.

Risultato quando si fa clic sul pulsante Cancella:

Loop through Controls Result

Leggi anche: