Subroutine VBA di Excel: come chiamare Sub in VBA con l'esempio

Cos'è una subroutine in VBA?

A Sottoprogramma in VBA è un pezzo di codice che esegue un'attività specifica descritta nel codice ma non restituisce un risultato o un valore. Le subroutine vengono utilizzate per scomporre grandi porzioni di codice in piccole parti gestibili. Le subroutine possono essere richiamate più volte da qualsiasi punto del programma.

Supponiamo che tu abbia creato un'interfaccia utente con caselle di testo per accettare dati di input utente. Puoi creare una subroutine che cancella il contenuto delle caselle di testo. Una subroutine di chiamata VBA è appropriata in uno scenario del genere perché non vuoi restituire alcun risultato.

Perché utilizzare le subroutine

  • Suddividi il codice in piccolo codice gestibile: Un programma per computer medio ha migliaia e migliaia di righe di codice sorgente. Ciò introduce complessità. Le subroutine aiutano a risolvere questo problema suddividendo il programma in piccoli pezzi di codice gestibili.
  • Riutilizzabilità del codice. Supponiamo che tu abbia un programma che deve accedere al database, quasi tutte le finestre del programma dovranno interagire con il database. Invece di scrivere codice separato per queste finestre, puoi creare una funzione che gestisce tutte le interazioni con il database. Puoi quindi chiamarla da qualsiasi finestra tu voglia.
  • Le subroutine e le funzioni sono autodocumentanti. Supponiamo che tu abbia una funzione calcolaLoanInterest e un'altra che dice connectToDatabase. Semplicemente guardando il nome della subroutine/funzione, il programmatore sarà in grado di capire cosa fa il programma.

Regole per denominare subroutine e funzioni

Per utilizzare subroutine e funzioni, è necessario seguire una serie di regole.

  • Il nome di una subroutine o di una funzione di chiamata VBA non può contenere spazi
  • Un nome di funzione o una chiamata secondaria VBA di Excel deve iniziare con una lettera o un carattere di sottolineatura. Non può iniziare con un numero o un carattere speciale
  • Il nome di una subroutine o di una funzione non può essere una parola chiave. Una parola chiave è una parola che ha un significato speciale in VBA. Parole come Private, Sub, Function e End, ecc. sono tutti esempi di parole chiave. Il compilatore li utilizza per compiti specifici.

Sintassi della subroutine VBA

Dovrai abilitare la scheda Sviluppatore in Excel per seguire questo esempio. Se non sai come abilitare la scheda Sviluppatore, leggi il tutorial su VBA OperaTors

QUI nella sintassi,

Private Sub mySubRoutine(ByVal arg1 As String, ByVal arg2 As String)
    'do something
End Sub

Spiegazione della sintassi

Code Action
  • "Sottotitolo privato mySubRoutine(...)"
  • Qui la parola chiave "Sub" viene utilizzata per dichiarare una subroutine denominata "mySubRoutine" e avviare il corpo della subroutine.
  • La parola chiave Private viene utilizzata per specificare l'ambito della subroutine
  • "ByVal arg1 come stringa, ByVal arg2 come stringa":
  • Dichiara due parametri di tipo di dati stringa denominati arg1 e arg2
  • "Fine sottotitolo"
  • "End Sub" viene utilizzato per terminare il corpo della subroutine

La seguente subroutine accetta il nome e il cognome e li visualizza in una finestra di messaggio.

Ora programmeremo ed eseguiremo questa Sub Procedure. Vediamo questo.

Come chiamare Sub in VBA

Di seguito è riportato un processo passo passo su come chiamare Sub in VBA:

  1. Progettare l'interfaccia utente e impostare le proprietà per i controlli utente.
  2. Aggiungi la subroutine
  3. Scrivere il codice dell'evento clic per il pulsante di comando che richiama la subroutine
  4. Prova l'applicazione

Passo 1) Interfaccia utente

Progetta l'interfaccia utente come mostrato nell'immagine seguente.

Come chiamare Sub in VBA

Imposta le seguenti proprietà. Le proprietà che stiamo impostando:

S / N Controllate Immobili Valore
1 PulsanteComando1 Nome btnDisplayFullName
2 Didascalia Subroutine nome completo


La tua interfaccia ora dovrebbe apparire come segue.

Come chiamare Sub in VBA

Passo 2) Aggiungi subroutine

  1. Premi Alt + F11 per aprire la finestra del codice
  2. Aggiungere la seguente subroutine
Private Sub displayFullName(ByVal firstName As String, ByVal lastName As String)
    MsgBox firstName & " " & lastName
End Sub

QUI nel codice,

Code Azioni
  • "Sottotitolo privato displayFullName(...)"
  • Dichiara una subroutine privata displayFullName che accetta due parametri stringa.
  • "ByVal firstName come stringa, ByVal lastName come stringa"
  • Dichiara due variabili parametro firstName e lastName
  • MsgBox nome e cognome"
  • Chiama il monsBox funzione incorporata per visualizzare una casella di messaggio. Quindi passa le variabili 'firstName' e 'lastName' come parametri.
  • La e commerciale "&" viene utilizzata per concatenare le due variabili e aggiungere uno spazio vuoto tra di loro.

Passo 3) Chiamare la subroutine

Chiamare la subroutine dall'evento clic del pulsante di comando.

  • Fare clic con il tasto destro sul pulsante di comando come mostrato nell'immagine seguente. Seleziona Visualizza codice.
  • Si aprirà l'editor del codice

Come chiamare Sub in VBA

Aggiungere il seguente codice nell'editor di codice per l'evento click del pulsante di comando btnDisplayFullName.

Private Sub btnDisplayFullName_Click()
    displayFullName "John", "Doe"
End Sub

La finestra del codice ora dovrebbe apparire come segue

Come chiamare Sub in VBA

Salva le modifiche e chiudi la finestra del codice.

Passo 4) Testare il codice

Sulla barra degli strumenti dello sviluppatore disattiva la modalità di progettazione. Come mostrato di seguito.

Come chiamare Sub in VBA

Passo 5) Fare clic sul pulsante di comando 'Subroutine FullName'.

Otterrai i seguenti risultati

Come chiamare Sub in VBA

Scarica il codice Excel sopra

Sintesi

  • Una subroutine è un pezzo di codice che esegue un compito specifico. Una subroutine non restituisce un valore dopo l'esecuzione
  • Le subroutine offrono la riusabilità del codice
  • Le subroutine aiutano a scomporre grandi porzioni di codice in piccoli codici gestibili.