TOP

VBA-Lezione 12.1. Moduli utente (UserForm)

Un oggetto UserForm è una finestra o una finestra di dialogo che fa parte dell'interfaccia utente di un'applicazione.

UserForm ti consente di creare finestre o finestre di dialogo nel tuo progetto. Nel modulo disegni e puoi vedere i controlli.

I moduli utente hanno proprietà che ne definiscono l'aspetto, come posizione, dimensione, colore e aspetti del loro comportamento.

Durante lo sviluppo del modulo:

  • Ogni finestra del modulo dispone di pulsanti Riduci a icona, Espandi e Chiudi.
  • È possibile visualizzare la griglia della forma e ridimensionare le linee della griglia nella scheda Generale della finestra di dialogo Opzioni.
  • Utilizza i pulsanti sulla barra degli strumenti per disegnare i controlli sul modulo. Nella scheda Generale della finestra di dialogo Opzioni è possibile personalizzare i controlli per allinearli alla griglia del modulo.

  • Crea modulo (UserForm)

    Per aggiungere UserForm dobbiamo fare la stessa cosa quando aggiungiamo un nuovo modulo:

    Successivamente verranno visualizzati il modulo (UserForm) e la barra degli strumenti (Toolbox):

    Se non vedi la finestra Proprietà (Properties), assicurati che sia visualizzata e quindi inizia modificando il nome UserForm (così potrai trovarlo facilmente in seguito):

    Un modulo (UserForm) ha i propri eventi, proprio come una cartella di lavoro o un foglio. Per aggiungere un evento, fare doppio clic su UserForm.

    Ora creiamo due eventi per vedere come funziona. Il primo evento imposterà la dimensione iniziale di UserForm e il secondo aumenterà la sua dimensione di 50px quando l'utente fa clic.

    L'evento UserForm_Initialize verrà attivato all'avvio di UserForm:

    Private Sub UserForm_Initialize()
        my_userform.Height = 100
        my_userform.Width  = 100
    End Sub
    

    Per semplificare il codice, possiamo usare Me invece del nome UserForm (perché questo codice è nel UserForm con cui stiamo lavorando):

    Private Sub UserForm_Initialize()
        Me.Height = 100
        Me.Width  = 100
    End Sub
    

    Il secondo evento si verificherà quando l'utente fa clic su UserForm:

    Private Sub UserForm_Initialize()
        Me.Height = 100
        Me.Width  = 100
    End Sub
    
    Private Sub UserForm_Click()
        Me.Height = Me.Height + 50
        Me.Width  = Me.Width + 50
    End Sub
    

    Avvia modulo (UserForm)

    Per eseguire UserForm in una procedura, utilizzare Mostra:

    Sub show_userform()
         my_userform.Show
    End Sub