/ / Funzione VBA Excel e sott

Excel VBA Function e Sub

Funzione | Sub

La differenza tra a funzione e a sub nel Excel VBA è che una funzione può restituire un valore mentre un sub non può. Le funzioni e i sottotitoli diventano molto utili all'aumentare delle dimensioni del programma.

Funzione

Se si desidera che Excel VBA esegua un'operazionerestituisce un risultato, è possibile utilizzare una funzione. Inserire una funzione in un modulo (nel Visual Basic Editor, fare clic su Inserisci, Modulo). Ad esempio, la funzione con il nome Area.

Function Area(x As Double, y As Double) As Double

Area = x * y

End Function

Spiegazione: Questa funzione ha due argomenti (di tipo Double) e un tipo restituito (la parte dopo As di tipo Double). Puoi usare il nome della funzione (Area) nel tuo codice per indicare quale risultato vuoi tornare (qui x * y).

Puoi ora fare riferimento a questa funzione (in altre parole chiama la funzione) da qualche altra parte nel tuo codice semplicemente usando il nome della funzione e fornendo un valore per ogni argomento.

Inserire un pulsante di comando nel foglio di lavoro e aggiungere le seguenti linee di codice:

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

Spiegazione: La funzione restituisce un valore, quindi devi "catturare" questo valore nel tuo codice. Puoi usare un'altra variabile (z) per questo. Successivamente, è possibile aggiungere un altro valore a questa variabile (se lo si desidera). Infine, visualizza il valore utilizzando MsgBox.

Risultato quando si fa clic sul pulsante di comando sul foglio:

Risultato funzione VBA Excel

Sub

Se si desidera che Excel VBA esegua alcune azioni, è possibile utilizzare un sub. Inserire un sub in un modulo (nel Visual Basic Editor, fare clic su Inserisci, Modulo). Ad esempio, il sottotitolo con il nome Area.

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

Spiegazione: Questo sottotitolo ha due argomenti (di tipo Double). Non ha un tipo di ritorno! Puoi fare riferimento a questo sottotitolo (chiama il sottotitolo) da qualche altra parte nel tuo codice semplicemente usando il nome del sottotitolo e dando un valore per ogni argomento.

Inserire un pulsante di comando nel foglio di lavoro e aggiungere la seguente riga di codice:

Area 3, 5

Risultato quando si fa clic sul pulsante di comando sul foglio:

Risultato secondario VBA di Excel

Riesci a vedere la differenza tra la funzionee il sub? La funzione ha restituito il valore 15. Abbiamo aggiunto il valore 2 a questo risultato e visualizzato il risultato finale. Quando abbiamo chiamato il sub non abbiamo più avuto il controllo sul risultato (15) perché un sub non può restituire un valore!

Leggi anche: