Come controlli Usa VBA UserForm
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.
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.
Se vuoi mostrare un messaggio quando il mouse passa sopra la casella di testo, scrivilo in ControlTipText nella finestra delle proprietà.
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.
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à.
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.
Da link: / events-in-vba-the-events-in-excel-vba [events]
, seleziona inizializza.
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.
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).
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à.
Proprio come il ComboBox, la casella di riepilogo VBA è inizialmente vuota. Per inizializzarlo, usiamo semplicemente la proprietà add della classe listbox.
Come aggiungere elementi alla casella di riepilogo?
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.
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
Quando premiamo il pulsante di comando, otteniamo gli elementi selezionati mostrati nella msgbox.
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.
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
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.
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
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.
È possibile modificare il nome della cornice dalla didascalia nella casella delle proprietà.
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.
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.
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.
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.