Quando si creano i form in Excel VBA, è possibile utilizzare la collezione Controls facilmente ciclo attraverso i controlli e impostare una proprietà di ciascun controllo a un valore specifico.

Il form ci accingiamo a creare look come segue:

Controls Collection in Excel VBA

Per creare questo form, eseguire i seguenti passaggi:

  1. Aprire il Visual Basic Editor. Se il progetto Explorer non è visibile, fare clic su Visualizza, progetti.

  2. 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.

Userform Screen Setup in Excel VBA

  1. Aggiungere l’etichetta, caselle di testo (prima in alto, il secondo sotto il primo, e così via) e 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 testo di controllo di dialogo facendo clic sul TextBox dalla casella degli strumenti. Successivamente, è possibile trascinare una casella di testo sopra il Form utente.

  2. Per modificare la didascalia del pulsante Userform, etichetta e di comando, fare clic su Visualizza, Finestra Proprietà e fare clic su ogni controllo.

  3. 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 vbModeless

End Sub

Spiegazione: con l’aggiunta di vbModeless, è possibile utilizzare il form e il lavoro nel foglio di lavoro allo stesso tempo.

Abbiamo creato la prima parte del form utente. Anche se sembra già pulito, non succederà nulla ma quando si clicca sul pulsante di comando sopra il Form utente.

  1. Aprire il Visual Basic Editor.

  2. In Esplora progetti, fare doppio clic su UserForm1.

  3. Fare doppio clic sul pulsante di comando.

  4. Aggiungere le seguenti righe di codice:

Private Sub CommandButton1_Click()

Dim i As Integer

For i = 1 To 10

Controls("TextBox" & i).Value = Cells(i + 1, 1).Value

Next i

End Sub

Spiegazione: Con solo poche righe di codice, siamo in grado di riempire le caselle di testo con i numeri di telefono dal foglio. Abbiamo usato l’operatore & per concatenare (join) gli elementi. Queste linee di codice funzionano perché non abbiamo cambiato i nomi dei controlli casella di testo (TextBox1, TextBox2, TextBox3, ecc). Per modificare i nomi dei comandi, fare clic su Visualizza, Finestra Proprietà e fare clic su ogni controllo.

Risultato quando si fa clic sul pulsante di comando sul foglio:

Controls Collection Result