image

In questo articolo impareremo le basi dei moduli utente VBA. Spiegherò come creare un modulo in Excel, come utilizzare la casella degli strumenti VBA, come gestire gli input dell’utente e infine come memorizzare gli input dell’utente. Affronteremo questi argomenti utilizzando un esempio e una guida passo passo. Se stai leggendo questo, presumo che tu conosca le basi di Excel VBA.

Senza ulteriori indugi, iniziamo.

Crea un modulo per investimenti in Excel e archivia record

Inizieremo progettando il modulo utente. In questo modulo utente, avremo una casella di testo per il nome, una per l’età, una per l’importo dell’investimento e un paio di pulsanti di opzione per il sesso. Cominciamo.

Progetta il modulo utente

Apri l’editor di visual basic in Excel usando la scorciatoia ALT + F11. In Project Box, fare clic con il tasto destro su VBAProject (yourfile). Nell’opzione di inserimento, scegli UserForm. Immediatamente, verrà creata una nuova cartella e il tuo modulo utente verrà trovato nel file. Tutti i moduli utente per questo progetto verranno aggiunti in questa cartella.

Modificare il nome del modulo in InvestmentForm nella casella delle proprietà *.

Aggiungi elementi al modulo: nell’immagine sopra ho già aggiunto elementi (etichette, casella di testo, pulsante di comando). Tuttavia, un nuovo modulo utente è completamente vuoto. È necessario utilizzare la casella degli strumenti per aggiungere elementi al modulo. Se non riesci a vedere la casella degli strumenti, scaricala dalla scheda Visualizza *.

Elementi nome *: la casella di testo, le etichette, i pulsanti, ecc. Sono tutti elementi.

E per utilizzarli nel codice VBA dobbiamo dare loro dei nomi. Usiamo la finestra delle proprietà per cambiare il loro nome. Seleziona l’elemento. Qui seleziono la casella di testo per il nome. Vai alla finestra delle proprietà e cambia il nome in “NameBox *”. Fai lo stesso per ogni elemento che intendi utilizzare. (non hai bisogno di nominare le etichette, a meno che tu non voglia che siano cliccabili.)

image

Ho rinominato l’elemento come sotto la tabella e userò questi nomi per riferirmi ad essi. Puoi avere nomi diversi. Basta sostituire questi nomi con il tuo nome. Questi sono i nomi VBA (nome in codice) che verranno utilizzati nel codice. Non si rifletteranno sulla forma.

Il testo che puoi vedere sulle etichette e sui pulsanti è “Didascalie”. Il nome e la didascalia dell’elemento possono essere gli stessi, se lo desideri.

Element

Rename

Name Text Box

NameBox

Age Text Box

AgeBox

Male Option Button

MaleOption

Female Option Button

FemaleOption

Investment Text Box

InvestBox

Submit Command Button

SubmitButton

Cancel Command Button

CancelButton

Mostra modulo utente all’utente: ora il modulo è pronto, mostriamolo all’utente. Ma aspetta, come lo faccio. Non c’è alcuna opzione sul foglio di lavoro per chiamare il modulo utente. In realtà, il modulo utente deve essere attivato. Non può essere mostrato da solo. È possibile utilizzare un pulsante di comando, una subroutine o un evento per far apparire il modulo sullo schermo.

Qui userò un pulsante di comando per attivare il modulo utente.

  • In un foglio di lavoro, vai alla scheda sviluppatori? Inserire? Pulsante (controllo modulo).

Rinominalo modulo aperto.

  • Fare clic destro su di esso. Fare clic su Assegna macro e quindi su Nuovo.

image

Verrà creato immediatamente un sottotitolo. Ora aggiungi questa riga a quel sottotitolo.

Sub Open_Form()

'Opening form

InvestmentForm.Show

End Sub

È fatta. Torna a quel foglio e fai clic sul pulsante. Apparirà il modulo utente.

image

Compila il foglio utilizzando il modulo utente VBA: quando abbiamo fatto clic sul pulsante di comando (modulo aperto), viene visualizzato il modulo. Ora puoi compilare il modulo. Ma quando facciamo clic sul pulsante di invio, i dati dovrebbero essere stati inseriti in questo foglio, ma non succede nulla. Perché non abbiamo scritto alcuna istruzione vba per questo. Abbiamo bisogno di memorizzare i dati del modulo utente nel foglio. Torna a VBA e fai doppio clic sul pulsante Invia. Un nuovo sottotitolo verrà creato automaticamente. Questo sottotitolo è incorporato nel modulo e non puoi trovarlo in nessun modulo. Questo è lo stesso per ogni elemento della forma.

  • Scrivi questo codice VBA in quel sub.

Private Sub SubmitButton_Click()

Sheet1.Activate

'get first empty row on sheet (read about it here)

lstrow = Cells(Rows.Count, 1).End(xlUp).Row

Set firstEmptyRow = Range("A" & lstrow + 1)

'initialize each cell with data

firstEmptyRow.Offset(0, 0).Value = nameBox.Value 'first cell

firstEmptyRow.Offset(0, 1).Value = AgeBox.Value 'first cell to the right

firstEmptyRow.Offset(0, 3).Value = InvestBox.Value 'third cell to the right

'checking radio button

If MaleOption.Value = True Then

firstEmptyRow.Offset(0, 2).Value = "Male" 'second cell to the right

Else

firstEmptyRow.Offset(0, 2).Value = "Female" 'second cell to the right

End If

'Closing form

Unload Me

End Sub

Lo snippet di codice VBA sopra viene eseguito quando si fa clic sul pulsante di invio. Trova la prima riga vuota del foglio e la riempie con i valori forniti nel modulo. E alla fine chiude il form utilizzando il comando “Unload Me”.

image

Utilizzare il comando Annulla per chiudere il modulo. Per ora, il pulsante Annulla è inutile. Non sta facendo niente. Nel caso in cui si desideri interrompere l’inserimento, è possibile utilizzare il pulsante Annulla. In tal caso: * Fare doppio clic sul pulsante di comando Annulla nell’editor VBA. Verrà creato un nuovo sottotitolo. Basta scrivere questa riga di codice per chiudere il modulo utente.

Private Sub CancelButton_Click()

'Closing form

Unload Me

End Sub

Infine il codice del modulo sarà simile a questo.

image

E questo è tutto. Questo è il modo in cui usi excel vba userform per ottenere input dagli utenti. In questo articolo, abbiamo appena esplorato l’uso di base di userform, in modo che tu possa familiarizzare con esso. È semplice, se hai una conoscenza di base di vba.

In articoli futuri, esploreremo funzionalità più avanzate dei moduli utente vba in Excel. Creeremo userform in Excel per fare molto di più.

Esploreremo diversi strumenti ed elementi disponibili per vba userform.

Fino ad allora pratica questo. Puoi scaricare questo file come riferimento, se lo desideri.

Quindi sì ragazzi, questo era un piccolo e semplice tutorial in formato utente. Spero sia stato pieno di risorse. Fammi sapere se hai dei dubbi in merito, fammi sapere nella sezione commenti qui sotto.

Articoli correlati

`link: / user-forms-input-box-in-vba-change-the-valueecontent-of-many-userform-controls-using-vba-in-microsoft-excel [Modifica il valore / contenuto di diversi controlli UserForm utilizzando VBA in Excel] `

`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] `

`link: / user-forms-input-boxes-in-vba-return-a-userdefined-cell-reference-from-a-dialog-using-vba-in-microsoft-excel [Restituisce le celle a cui fa riferimento l’utente usando RefEdit controllo del modulo utente in Excel] `

Articoli popolari:

link: / formule-e-funzioni-introduzione-di-vlookup-funzione [La funzione CERCA.VERT in Excel]

link: / tips-countif-in-microsoft-excel [CONTA.SE in Excel 2016]

link: / excel-formula-and-function-excel-sumif-function [Come usare la funzione SOMMA.SE in Excel]