Gli UserForm in VBA vengono utilizzati per ricevere input dall’utente e talvolta per visualizzare output e messaggi. Impara le basi di userform link: / applications-word-outlook-in-vba-come iniziare-con-excel-vba-userforms [qui].

I moduli utente possono avere più e diversi componenti per gli input.

Questi componenti sono chiamati controlli di UserForm.

Esistono diversi tipi di controlli del modulo utente, ciascuno con proprietà diverse e utilizzato per motivi diversi. È utile sapere come e quando utilizzare ogni tipo di controllo userform. In questo articolo, impareremo come utilizzare UserForm Control in Excel VBA.

Tipi di controlli UserForms

Ci sono troppi controlli userform in VBA. Se li trattiamo In questo articolo, ci concentreremo solo sui principali controlli del modulo.

1: Etichette

2: TextBox

3: ComboBox

4: ListBox

5: CheckBox

6: OptionButton

7: ToggleButton

8: CommandButton

9: Frame

Diamo un’occhiata a tutti questi controlli.

Etichette:

Le etichette vengono utilizzate per mostrare semplicemente le etichette di testo. Come un’etichetta per un’area di immissione, un avviso, una direzione, ecc.

image

Per aggiungere un’etichetta al modulo utente, selezionare semplicemente l’opzione Etichetta (icona A) da ToolBox. Il cursore si trasformerà in un segno più. Trascina nell’area in cui desideri inserire le etichette.

TextBox:

Una casella di testo è un’opzione di input di base aperta dall’utente. L’utente può semplicemente digitare gli input che desidera fornire. Lo scenario di base è Nome input.

image

Se vuoi mostrare un messaggio quando il mouse passa sopra la casella di testo, scrivilo in ControlTipText nella finestra delle proprietà.

image

ComboBox:

Le combox vengono utilizzate per mostrare un elenco di elementi quando si fa clic. L’utente può selezionare facilmente uno qualsiasi degli elementi visualizzati da tale elenco o digitare l’input da solo.

Usiamo ComboBox in Excel VBA quando abbiamo un elenco opzionale da cui l’utente può selezionare. Gli utenti possono selezionare dall’elenco o digitare la risposta manualmente.

image

Seleziona la casella combinata dalla casella degli strumenti e trascina sul modulo. Inserirà immediatamente una casella combinata nel modulo. Il nome predefinito della casella combinata sarà Combobox1, 2, 3, ecc. È possibile modificarlo dalla casella delle proprietà.

image

Come inserire elementi in ComboBox?

Quindi ora hai aggiunto la casella combinata al nostro modulo. Ma quando carichiamo il form utente non mostra nulla nella casella combinata. Questo perché non abbiamo ancora aggiunto alcun elemento alla casella combinata.

In questo esempio, voglio aggiungere elementi alla casella combinata quando il form utente si inizializza (carica). Quindi, useremo il form utente anche “Initialize”.

Fare clic con il tasto destro del mouse sul modulo utente (non su alcun componente) per selezionare l’intero modulo utente. Seleziona visualizza codice.

image

Da link: / events-in-vba-the-events-in-excel-vba [events]

, seleziona inizializza.

image

Ora usa la proprietà AddItem di ComboBox Class e aggiungi tutti gli elementi che desideri.

Private Sub UserForm_Initialize()

ComboBox1.AddItem "2016"

ComboBox1.AddItem "2017"

ComboBox1.AddItem "2018"

ComboBox1.AddItem "2019"

ComboBox1.AddItem "2020"

End Sub

Poiché stiamo aggiungendo gli elementi nell’evento UserForm_Initialize (), tutti gli elementi verranno aggiunti alla casella combinata quando viene caricato il form utente.

image

Recupero dell’elemento selezionato dal ComboBox

Per utilizzare l’elemento selezionato dalla casella combinata, utilizziamo semplicemente la proprietà Value di ComboBox.

Private Sub CommandButton1_Click()

MsgBox ComboBox1.Value

End Sub

Qui stiamo mostrando il valore che abbiamo scelto quando l’utente fa clic sul pulsante di comando (arriveremo all’evento clic del pulsante di comando di seguito).

image

Listbox

Un ListBox viene utilizzato quando vogliamo che l’utente selezioni da un elenco definito.

Sembra simile a ComboBox? Sì, una casella di riepilogo è molto simile alla casella combinata tranne per il fatto che l’utente non può digitare la risposta nella casella di riepilogo.

Devono selezionare solo dalle opzioni disponibili.

Per inserire una casella di riepilogo nel modulo, selezionala dalla casella degli strumenti e fai clic sull’area del modulo.

Il nome predefinito della casella di riepilogo sarà geneticamente listbox1, 2, 3, ecc.

Puoi modificarlo dalla casella delle proprietà.

image

Proprio come il ComboBox, la casella di riepilogo VBA è inizialmente vuota. Per inizializzarlo, usiamo semplicemente la proprietà add della classe listbox.

Quando abbiamo aggiunto gli elementi all’elenco della casella combinata negli eventi di inizializzazione del modulo, aggiungeremo gli elementi della casella di riepilogo nello stesso evento. Basta modificare l’evento di inizializzazione sopra per aggiungere elementi quando viene caricato il modulo utente.

Private Sub UserForm_Initialize()

ComboBox1.AddItem "2016"

ComboBox1.AddItem "2017"

ComboBox1.AddItem "2018"

ComboBox1.AddItem "2019"

ComboBox1.AddItem "2020"

'Adding Item to List

ListBox1.AddItem "Jan"

ListBox1.AddItem "Feb"

ListBox1.AddItem "Mar"

ListBox1.AddItem "Apr"

ListBox1.AddItem "May"

ListBox1.AddItem "Jun"

ListBox1.AddItem "Jul"

ListBox1.AddItem "Aug"

ListBox1.AddItem "Sep"

ListBox1.AddItem "Oct"

ListBox1.AddItem "Nov"

ListBox1.AddItem "Dec"

End Sub

Il codice precedente aggiungerà i nomi dei mesi alla casella di riepilogo non appena caricheremo il modulo.

image

Recupero dell’elemento selezionato dalla ListBox

Per recuperare l’elemento che l’utente ha selezionato nella ListBox usiamo la proprietà Value dell’oggetto listbox.

Qui aggiungiamo il mese selezionato dall’utente all’input fornito nella casella combinata.

Private Sub CommandButton1_Click()

MsgBox ComboBox1.Value & "-" & ListBox1.Value

End Sub

image

Quando premiamo il pulsante di comando, otteniamo gli elementi selezionati mostrati nella msgbox.

image

Controllo VBA CheckBox

I CheckBox sono i controlli binari che possono essere impostati su True o False.

Puoi avere più caselle di controllo e selezionare più di una casella di controllo contemporaneamente. Questo è fondamentalmente utilizzato quando un utente deve essere in grado di selezionare più di un’opzione. Come domande a risposta multipla.

Per aggiungere caselle di controllo al modulo utente, selezionalo dalla casella degli strumenti e trascina nell’area del modulo utente VBA.

image

Quando si aggiungono le caselle di controllo al modulo utente, il nome predefinito delle caselle di controllo è come casella di controllo1, casella di controllo2, ecc. È possibile modificare il nome delle caselle di controllo dalla casella delle proprietà.

Come utilizzare le caselle di controllo sul modulo utente?

Non appena aggiungi le caselle di controllo, diventano selezionabili. Gli utenti possono selezionarli o deselezionarli. Ma come facciamo a sapere quale casella di controllo è selezionata e quale no?

Come ho detto, le caselle di controllo sono booleane. Quindi, se una casella di controllo è selezionata, il suo valore è True, altrimenti il ​​suo valore è False.

Il codice seguente controlla quali caselle di controllo sono selezionate e lo mostra nella casella Messaggio.

Private Sub CommandButton1_Click()

Dim msg As String

If CheckBox1.Value = True Then

msg = msg & "CheckBox1 is selected"

End If

If CheckBox2.Value = True Then

msg = msg & vbCrLf & "CheckBox2 is selected"

End If

MsgBox msg

End Sub

image

Se si desidera che l’utente sia in grado di selezionare solo un’opzione nel modulo utente, utilizzare i pulsanti di opzione.

OptionButton VBA Control

I pulsanti di opzione / opzione vengono utilizzati nel modulo utente VBA quando si desidera che l’utente selezioni solo un’opzione tra le opzioni disponibili. Come quando i moduli chiedono sesso, lingua preferita, età, ecc.

Il pulsante di opzione può essere facilmente aggiunto al modulo utente selezionandolo dagli strumenti e trascinando nell’area del modulo. Trascina e rilascia i pulsanti di opzione più volte per più pulsanti di opzione.

image

Come ottenere la selezione del pulsante radio / opzione?

I pulsanti di opzione sono binari. Il loro valore può essere Vero o Falso.

Il pulsante di opzione selezionato sarà impostato su True e tutti gli altri diventeranno false. Solo un pulsante di opzione alla volta sarà vero in un gruppo.

Il codice seguente controlla semplicemente quale pulsante di opzione è selezionato e mostra il messaggio di conseguenza.

Private Sub CommandButton1_Click()

Dim gender As String

If OptionButton1.Value = True Then

gender = "Male"

ElseIf OptionButton2.Value = True Then

gender = "female"

Else

gender = "other"

End If

MsgBox gender

End Sub

image

Notare che solo un pulsante di opzione può essere selezionato nel modulo utente nell’esempio precedente. Ma cosa succede se si desidera avere più gruppi di pulsanti di opzione. In tal caso, utilizziamo i frame. E questo ci porta a …​

Frame in VBA UserForm

I frame sono usati per raggruppare in oggetti userform, come caselle di controllo e pulsanti di opzione.

Per usare i frame, prima trascina il frame nell’area del modulo e poi rilascia gli altri oggetti in quel frame.

image

È possibile modificare il nome della cornice dalla didascalia nella casella delle proprietà.

image

Tutti gli eventi sono disponibili anche per i frame come altri oggetti userform. Ma preferibilmente li usiamo solo per raggruppare gli oggetti. È possibile impostare eventi onclick su fram per caricare alcune informazioni di base per gli oggetti al suo interno, quando viene cliccato.

Attiva / disattiva i pulsanti in VBA UserForm

I pulsanti di attivazione / disattivazione sono anche oggetti binari che possono essere attivati ​​e disattivati. Puoi utilizzare i pulsanti di attivazione / disattivazione per attivare e disattivare qualcosa.

Per aggiungere un pulsante di attivazione / disattivazione al modulo utente, è sufficiente selezionarlo dagli strumenti e trascinare nell’area del modulo.

image

Il codice seguente è impostato sull’evento onclick del pulsante di attivazione / disattivazione. Cambia il colore della cella A1 in blu quando viene premuto il pulsante di attivazione / disattivazione e lo reimposta quando viene premuto il pulsante di attivazione / disattivazione.

Private Sub ToggleButton1_Click()

If ToggleButton1.Value Then

Range("A1").Interior.ColorIndex = 32

Else

Range("A1").Interior.ColorIndex = xlColorIndexNone

End If

End Sub

Pulsanti di comando in UserForm VBA

Questi sono i pulsanti che utilizziamo per eseguire il codice VBA principale come convalide, calcoli, invii di moduli, ecc.

Negli esempi precedenti, ho utilizzato il pulsante di comando per inviare il modulo. Puoi avere tutti i pulsanti di comando sul modulo utente che desideri.

image

Per eseguire i codici quando si fa clic sul pulsante, è sufficiente fare doppio clic sul pulsante. Aprirà l’evento CommandButton_Click. Scrivi qui il codice da eseguire al clic del pulsante di comando.

image

Il codice seguente verrà eseguito quando fai clic sul pulsante di comando Fine e chiuderà anche il modulo utente.

Private Sub CommandButton1_Click()

Dim gender As String

If OptionButton1.Value = True Then

gender = "Male"

ElseIf OptionButton2.Value = True Then

gender = "female"

Else

gender = "other"

End If

MsgBox gender

Unload UserForm1 'closes userform

End Sub

Quindi sì ragazzi, questi sono i controlli di base del modulo utente in VBA. Spero sia stato utile. In caso di dubbi sui controlli del modulo utente e sugli eventi del modulo utente, annotarli nella sezione commenti di seguito.

Articoli correlati

link: / applicazioni-word-outlook-in-vba-per-iniziare-con-excel-vba-userforms [Guida introduttiva ai form utente VBA di Excel] | Gli Excel UserForms sono utili per ottenere informazioni dall’utente. Ecco come dovresti iniziare con VBA userforms `link: / user-forms-input-boxes-in-vba-change-the-valuecontent-of-many-userform-controls-using-vba-in-microsoft-excel [Change il valore / contenuto di diversi controlli UserForm utilizzando VBA in Excel] `| Per modificare il contenuto dei controlli del modulo utente, utilizza questo semplice frammento VBA.

`link: / user-forms-input-box-in-vba-prevent-a-userform-from-closing-when the-user-click-the-x-button-using-vba-in-microsoft-excel [ Impedire la chiusura di un modulo utente quando l’utente fa clic sul pulsante x utilizzando VBA in Excel] `| Per impedire la chiusura del modulo utente quando l’utente fa clic sul pulsante x del modulo, utilizziamo l’evento UserForm_QueryClose.

Articoli popolari:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-per-aumentare-la-produttività [50 scorciatoie Excel per aumentare la produttività] | Diventa più veloce nel tuo compito. Queste 50 scorciatoie ti faranno lavorare ancora più velocemente su Excel.

link: / formule-e-funzioni-introduzione-di-vlookup-funzione [La funzione CERCA.VERT in Excel] | Questa è una delle funzioni più utilizzate e popolari di Excel che viene utilizzata per cercare il valore da diversi intervalli e fogli. link: / tips-countif-in-microsoft-excel [COUNTIF in Excel 2016] | Contare i valori con le condizioni utilizzando questa straordinaria funzione. Non è necessario filtrare i dati per contare un valore specifico.

La funzione Countif è essenziale per preparare la tua dashboard.

link: / excel-formula-and-function-excel-sumif-function [Come utilizzare la funzione SUMIF in Excel] | Questa è un’altra funzione essenziale della dashboard. Questo ti aiuta a riassumere i valori su condizioni specifiche.