Come utilizzare i controlli VBA in UserForms

Questo articolo dimostrerà come utilizzare i controlli nei moduli utente in Excel VBA.

VBA ha la capacità di creare moduli con cui l'utente può interagire come moduli di fatturazione o dettagli di contatto. Un modulo può contenere una varietà di controlli modulo come caselle di testo, caselle combinate, caselle di riepilogo e pulsanti di comando. Questo articolo tratterà i controlli più popolari utilizzati sui moduli utente, ovvero caselle di testo, etichette, caselle combinate, caselle di riepilogo, caselle di controllo e gruppi di opzioni.

Per saperne di più sui moduli utente integrati e sulla creazione di moduli utente personalizzati in Excel, fai clic qui.

Creazione di un modulo utente

Per creare un modulo utente in Excel VBA, dobbiamo prima aprire il Editor VBE.

Per inserire un nuovo modulo utente nel tuo codice, seleziona il pulsante Modulo utente opzione dal menu Inserisci.

Apparirà un nuovo modulo utente in Esplora progetti e verrà mostrato nella finestra del codice a destra.

Puoi rinominare il tuo modulo usando il Proprietà scatola. Questo dovrebbe apparire sotto il tuo Esplora progetti.

Se è quanto è visibile, premere F4 o clicca Visualizzazione, Finestra delle proprietà.

Fare clic su Nome proprietà e rinominare il modulo.

Ora possiamo iniziare a popolare il nostro modulo con i controlli: il controllo della casella di testo è il controllo più popolare insieme al controllo dell'etichetta e al pulsante di comando.

Per popolare il modulo con i controlli, dobbiamo attivare la Casella degli strumenti.

Nel Menù, Selezionare Visualizza > Casella degli strumenti.

Creazione di una casella di testo

Per creare una casella di testo nel modulo, seleziona il controllo Casella di testo nella casella degli strumenti.

Trascina una forma di casella sul modulo con il mouse, tenendo premuto il pulsante sinistro, quindi rilascia il pulsante del mouse.

Poiché questa è la prima casella di testo che stiamo creando, verrà denominata TextBox1. Come con il modulo, è possibile utilizzare la finestra Proprietà per rinominare la casella di testo.

Possiamo continuare a creare tutte le caselle di testo nel nostro modulo di cui abbiamo bisogno e nominarle come appropriato utilizzando la proprietà Nome nella finestra Proprietà.

Creazione di un controllo etichetta

Un controllo etichetta ci dice cosa verrà utilizzata la casella di testo. Trascini sul modulo nello stesso modo in cui fai per una casella di testo, quindi puoi digitare il testo richiesto all'interno del controllo dell'etichetta, ad esempio: Nome come mostrato di seguito.

Come per le caselle di testo, continua a crearne quante sono necessarie nel modulo.

Creazione di un controllo casella combinata

Una casella combinata (o una casella a discesa) consente all'utente di selezionare da un elenco di valori. Per creare una casella combinata, fare clic nella casella degli strumenti sul controllo Casella combinata, quindi fare clic e trascinare la casella combinata nel modulo.

Assegna un nome appropriato alla casella combinata.

Aggiunta di valori alla casella combinata

Per popolarlo con i valori, dobbiamo codificare nel Inizializzare metodo dell'oggetto modulo utente.

Per accedere al Code Behind the Form (CBF), fare doppio clic sul modulo o fare clic sul pulsante del codice in Esplora progetti per passare alla visualizzazione del codice.

Nell'elenco a discesa a sinistra selezionare Modulo utente, quindi nell'elenco a discesa a destra selezionare Inizializza.

Digita il seguente codice all'interno di Sub e End Sub per popolare la casella a discesa:

1234 Me.cboState.AddItem "Alabama"Me.cboState.AddItem "Alaska"Me.cboState.AddItem "Arizona"Me.cboState.AddItem "Arkansas"

Ovviamente possiamo continuare a popolare la lista con il resto degli stati negli USA!

Per eseguire il modulo utente per vedere l'elenco in azione, 1) tornare alla visualizzazione modulo e quindi, 2) nella barra degli strumenti, fare clic sull'icona Correre pulsante.

Fare clic sulla freccia a discesa per visualizzare l'elenco.

Possiamo anche utilizzare un intervallo in Excel per popolare la casella combinata.

123456 Private Sub UserForm_Initialize()Dim rng come intervalloPer ogni rng nell'intervallo ("A1: A50")Me.cboState.AddItem rng.Valuerng successivoFine sottotitolo

Questo raccoglierà tutti i valori memorizzati nell'intervallo da A1 a A50 e popolerà l'elenco a discesa di conseguenza.

Creazione di un controllo casella di riepilogo

Un controllo Casella di riepilogo funziona allo stesso modo di un controllo Casella combinata, ma ci consente di vedere tutte le opzioni del modulo in un formato elenco.

Selezionare il controllo Casella di riepilogo nella casella degli strumenti e quindi trascinare per creare una casella di riepilogo nel modulo.

Stanco di cercare esempi di codice VBA? Prova AutoMacro!

Aggiunta di valori alla casella di riepilogo

Nell'evento Inizializza del modulo, digitare il codice seguente:

123456 Private Sub UserForm_Initialize()Dim rng come intervalloPer ogni rng nell'intervallo ("A1: A50")Me.lstState.AddItem rng.Valuerng successivoFine sottotitolo

Quando eseguiamo il modulo, la casella di riepilogo verrà mostrata come mostrato nell'immagine seguente:

Creazione di un controllo casella di controllo

Le caselle di controllo consentono all'utente di selezionare o deselezionare un'opzione.

Seleziona il controllo Casella di controllo, quindi fai clic nel modulo in cui desideri che vada.

Modificare la didascalia e il nome della casella di controllo nella finestra delle proprietà.

Creazione di un controllo del gruppo di opzioni con i pulsanti di opzione

Un gruppo di opzioni consente all'utente di selezionare tra una serie di opzioni disponibili. Il primo passaggio nella creazione di un gruppo di opzioni consiste nell'aggiungere un controllo frame al form e quindi aggiungere i pulsanti di opzione all'interno del frame che è stato aggiunto. In questo modo, ci assicuriamo che quando eseguiamo il modulo, solo uno dei pulsanti di opzione all'interno del frame possa essere selezionato alla volta.

Seleziona il controllo Cornice nella casella degli strumenti e quindi trascina per creare una cornice sul modulo.

Selezionare il controllo Pulsante di opzione nella casella degli strumenti e quindi fare clic all'interno del riquadro creato sopra per aggiungere il pulsante di opzione nel riquadro. Ripetere come richiesto.

Fare clic sulla cornice e 1) modificare il nome della cornice e la didascalia. Quindi 2) fare clic su ciascuno dei pulsanti di opzione e modificare la didascalia.

Creazione di un pulsante di comando per uscire dal modulo

In questa fase, l'unico modo per chiudere il modulo è utilizzare il pulsante di chiusura nell'angolo destro della barra di controllo del modulo. Un modo più efficiente per uscire da un modulo e su cui abbiamo un maggiore controllo è creare un pulsante Esci sul modulo. Questo viene fatto per mezzo del controllo del pulsante di comando nella casella degli strumenti.

Seleziona il controllo Pulsante di comando, quindi fai clic e trascina nel modulo per creare il pulsante.

Usando la proprietà Caption, cambia la didascalia del pulsante di comando su OK e l'acceleratore su "O"

Lo scopo dell'acceleratore è che l'utente utilizzi la tastiera per attivare il pulsante, in questo caso Alt+O attiverebbe il pulsante.

Fantastico prodotto. AutoMacro non si limita a scrivere il tuo codice, ti insegna mentre procedi!" - Tony, UK

Scopri di più

Leggi le nostre oltre 900 recensioni

Aggiunta di codice al pulsante di comando

Affinché il pulsante di comando funzioni, è necessario aggiungere del codice dietro di esso in modo che quando si fa clic sul pulsante, il codice venga eseguito. Questo è chiamato l'evento Click del pulsante.

Per accedere all'evento click, fare doppio clic sul pulsante nella visualizzazione struttura del modulo.

1) L'evento Click verrà creato automaticamente poiché questo è l'evento più comunemente usato per i pulsanti di comando.

2) Se dovessimo fare clic nella casella a discesa Procedura sul lato destro, vedremmo un elenco di tutti i metodi di evento disponibili per il pulsante di comando. Questo elenco cambia in base al tipo di controllo che abbiamo creato in quanto sono disponibili diversi eventi per diversi tipi di controlli.

Digitare il seguente codice nell'evento click del pulsante di comando.

123456789101112131415 Sotto privato cmdOK_Click()Intervallo("E1") = Me.txtNomeRange("E2") = Me.txtCognomeRange("E3") = Me.txtCellPhoneIntervallo("E4") = Me.cboStateSe Me.ckContactInfo = True alloraIntervallo ("E5") = "SMS consentiti"AltroIntervallo ("E5") = "SMS non consentito"Finisci seIf Me.opt1.Value = True Then Range("E6") = Me.opt1.CaptionSe Me.opt2.Value = True allora Range("E6") = Me.opt2.CaptionSe Me.opt3.Value = True allora Range("E6") = Me.opt3.CaptionScaricamiFine sottotitolo

Possiamo quindi eseguire il modulo, compilare le caselle di testo e selezionare dall'elenco a discesa. Facciamo quindi clic su OK per inserire le informazioni in Excel.

wave wave wave wave wave