Questo tutorial spiegherà come creare funzioni definite dall'utente in VBA.
VBA è composto da procedure secondarie e procedure di funzione. Le routine della funzione restituiscono un valore e possono essere chiamate dalle procedure secondarie oppure possono essere utilizzate nel foglio Excel, dove il valore prodotto dalla funzione viene restituito al foglio Excel. Excel ha ovviamente una gamma di funzioni integrate, come la funzione Somma o la funzione If. Le procedure di funzione scritte in VBA vengono utilizzate in modo simile alla funzione incorporata e sono note come funzioni definite dall'utente (UDF).
Perché creare una UDF?
Funzione richiesta mancante
Uno dei motivi principali per voler creare una UDF in Excel è che non esiste una funzione integrata esistente che svolgerà l'attività per te. Scrivere la propria funzione in VBA è solitamente il modo più efficiente per risolvere il problema. La funzione seguente convertirà un valore da chilogrammi a libbre in cui viene utilizzato un parametro variabile (dblKilo) per ottenere il valore dei chilogrammi per eseguire il calcolo.
Sostituisci una sottoroutine (Macro)
Potresti scrivere una sottoprocedura (macro) per risolvere l'attività per te - ma le sottoprocedure non restituiscono un valore e non sono dinamiche - in altre parole, se i valori nel tuo foglio di lavoro cambiano, dovresti rieseguire il macro affinché i calcoli nella macro aggiornino i dati. La procedura secondaria di seguito converte anche i nostri chili in libbre, ma ogni volta che i dati vengono modificati in A1, è necessario eseguire nuovamente la macro per aggiornare il risultato.
Sostituisci una formula
Potresti avere una formula davvero complicata in Excel che devi usare ripetutamente: inserire la formula nel codice VBA rende più facile la lettura e la comprensione, oltre a forse rimuovere spazio per l'errore dell'utente durante la digitazione della formula.
Creazione di UDF
Per creare una UDF, aggiungi prima un modulo alla tua cartella di lavoro Excel oppure, se disponi di una cartella di lavoro Macro personale, puoi utilizzare un modulo esistente o aggiungerne uno nuovo. Per fare ciò, devi essere nell'editor di Visual Basic (VBE). Per accedere al VBE, premere ALT + F11 oppure fai clic sull'opzione Visual Basic nella scheda Sviluppatore della barra multifunzione.
CONSIGLIO: se non hai la scheda Sviluppatore abilitata nella barra multifunzione, vai a File, Opzioni e clicca su Personalizza il nastro. Assicurati che la casella di controllo Sviluppatore sia selezionata e fai clic su OK.
Per inserire un nuovo modulo, seleziona il Progetto VBA in cui desideri inserire il modulo (o il Progetto VBA per il libro corrente su cui stai lavorando, o il Cartella macro personale), fai clic sul Inserire Menu e fare clic su Modulo
Una volta creato il modulo, puoi iniziare a creare la tua UDF.
Tutte le UDF iniziano con Function e quindi con il nome dell'UDF. Le funzioni possono essere private o pubbliche, ma in genere si desidera che una UDF sia pubblica in modo che vengano visualizzate nella finestra di dialogo Inserisci funzione in Excel (vedere l'utilizzo di una funzione all'interno di un foglio Excel più avanti in questo articolo). Se non inserisci la parola chiave Private davanti alla funzione, la funzione è automaticamente pubblica.
123 | Funzione TestFunction1(intA As Integer) As IntegerTestFunction1= intA * 7Fine funzione |
La funzione sopra ha un singolo argomento (intA). Puoi creare una funzione con più argomenti
123 | Funzione TestFunction2(intA As Integer, intB As Integer, intC As Integer) As IntegerTestFunction2 = (intA * intB) + intCFine funzione |
Puoi anche creare una funzione con argomenti facoltativi. Se l'argomento viene omesso, puoi impostare un valore predefinito per l'argomento nella funzione.
123 | Funzione TestFunction3(intA As Integer, intB As Integer, Optional intC As Integer=10) As IntegerTestFunction3 = (intA * intB) + intCFine funzione |
Utilizzo di una funzione all'interno di un foglio Excel
Le funzioni che hai creato appariranno per impostazione predefinita nell'elenco delle funzioni nella sezione Definito dall'utente dell'elenco delle funzioni.
Clicca sul fx per visualizzare la finestra di dialogo Inserisci funzione.
Selezionare Definito dall'utente dall'elenco delle categorie
Seleziona la funzione desiderata tra quelle disponibili Funzioni definite dall'utente.
In alternativa, quando inizi a scrivere la tua funzione in Excel, la funzione dovrebbe apparire nell'elenco a discesa delle funzioni.
Salvare le funzioni con il tuo file Excel
Poiché le funzioni sono scritte nel codice VBA, è logico che il codice debba essere disponibile per la cartella di lavoro per essere disponibile per essere utilizzato all'interno del foglio Excel. Puoi salvare le tue funzioni nella cartella di lavoro in cui le stai utilizzando oppure puoi salvarle nella cartella di lavoro della macro personale. La tua cartella di lavoro Macro personale è un file nascosto che è disponibile ogni volta che Excel è aperto e quindi disponibile per qualsiasi cartella di lavoro in Excel da utilizzare. Normalmente viene creato quando si registra una macro e si seleziona l'opzione per memorizzare la macro nella cartella di lavoro macro personale.
Se desideri mantenere le tue funzioni salvate all'interno della cartella di lavoro su cui stai lavorando, dovrai assicurarti che quando salvi la cartella di lavoro, venga salvata come "Cartella di lavoro con attivazione macro' o an xlsm file.