Sommario:
- Chiamata della funzione da una procedura secondaria
- Chiamare una funzione da una formula del foglio di lavoro
Video: Tutorial VBA Intermedio - Video 3 - Function 2025
Nella programmazione VBA, una funzione restituisce un valore. È possibile eseguire le procedure di funzione e richiamare la funzione in Excel 2016. Le funzioni, a differenza delle procedure Sub, possono essere eseguite in due modi:
-
Richiamando la funzione da un'altra procedura Sub o Procedura funzione
-
Utilizzando la funzione in un formula del foglio di lavoro
Prova questa semplice funzione. Inseriscilo in un modulo VBA:
Funzione CubeRoot (numero) CubeRoot = numero ^ (1/3) End Function
Questa funzione è piuttosto wimpy; calcola semplicemente la radice cubica del numero passato come argomento. Tuttavia, fornisce un punto di partenza per comprendere le funzioni. Illustra anche un concetto importante sulle funzioni: come restituire il valore. (Ti ricordi che una funzione restituisce un valore, giusto?)
Si noti che la singola riga di codice che costituisce questa procedura Function esegue un calcolo. Il risultato del calcolo matematico (numero alla potenza di 1/3) viene assegnato alla variabile CubeRoot. Non a caso, CubeRoot è anche il nome della funzione. Per dire alla funzione quale valore restituire, assegnare quel valore al nome della funzione.
Chiamata della funzione da una procedura secondaria
Poiché non è possibile eseguire direttamente una funzione, è necessario chiamarla da un'altra procedura. Immettere la seguente semplice procedura nello stesso modulo VBA che contiene la funzione CubeRoot:
Sub CallerSub () Ans = CubeRoot (125) MsgBox Ans End Sub
Quando si esegue la procedura CallerSub, Excel visualizza una finestra di messaggio che contiene il valore della variabile Ans, che è 5.
Ecco cosa sta succedendo: la funzione CubeRoot viene eseguita e riceve un argomento di 125. Il calcolo viene eseguito dal codice della funzione (utilizzando il valore passato come argomento) e il valore restituito della funzione viene assegnato al Variabile ans. La funzione MsgBox quindi visualizza il valore della variabile Ans.
Provare a modificare l'argomento passato alla funzione CubeRoot ed eseguire di nuovo la macro CallerSub. Funziona proprio come dovrebbe - assumendo che tu dia alla funzione un argomento valido (un numero positivo).
A proposito, la procedura CallerSub potrebbe essere semplificata un po '. La variabile Ans non è realmente necessaria a meno che il tuo codice non utilizzi quella variabile in seguito. È possibile utilizzare questa singola istruzione per ottenere lo stesso risultato:
MsgBox CubeRoot (125)
Chiamare una funzione da una formula del foglio di lavoro
Ora è il momento di chiamare questa procedura VBA Function da una formula del foglio di lavoro.Attivare un foglio di lavoro nella stessa cartella di lavoro che contiene la definizione della funzione CubeRoot. Quindi immettere la seguente formula in qualsiasi cella:
= CubeRoot (1728)
La cella visualizza 12, che è in effetti la radice cubica di 1, 728.
Come ci si potrebbe aspettare, è possibile utilizzare un riferimento di cella come argomento per la funzione CubeRoot. Ad esempio, se la cella A1 contiene un valore, è possibile immettere = CubeRoot (A1) . In questo caso, la funzione restituisce il numero ottenuto calcolando la radice cubica del valore in A1.
È possibile utilizzare questa funzione un numero illimitato di volte nel foglio di lavoro. Come le funzioni built-in di Excel, le funzioni personalizzate vengono visualizzate nella finestra di dialogo Inserisci funzione. Fare clic sul pulsante della barra degli strumenti Inserisci funzione e selezionare la categoria Definito dall'utente. La finestra di dialogo Inserisci funzione elenca la tua funzione personale.
Se si desidera che la finestra di dialogo Inserisci funzione visualizzi una descrizione della funzione, attenersi alla seguente procedura:
-
Scegliere Sviluppatore → Codice → Macro.
Excel visualizza la finestra di dialogo Macro, ma CubeRoot non appare nell'elenco. (CubeRoot è una procedura Function e questo elenco mostra solo le procedure Sub.) Non preoccuparti.
-
Digitare la parola CubeRoot nella casella Nome macro.
-
Fai clic sul pulsante Opzioni.
-
Inserire una descrizione della funzione nella casella Descrizione.
-
Fare clic su OK per chiudere la finestra di dialogo Opzioni macro.
-
Chiudere la finestra di dialogo Macro facendo clic sul pulsante Annulla.
Questo testo descrittivo ora appare nella finestra di dialogo Inserisci funzione.
Scopri la funzione CubeRoot utilizzata nelle formule del foglio di lavoro.
