Creare semplici funzioni in VB per Excel
Le funzioni sono formule predefinite che eseguono calcoli utilizzando argomenti in un particolare ordine o struttura e possono essere utilizzate sia per calcoli semplici e ripetitivi (la funzione SOMMA o MEDIA, ad esempio) sia per calcoli complessi (si pensi alle funzioni Finanziarie o Statistiche). Nonostante il numero elevato di funzioni che già possiede al suo interno, Excel permette all’utente di definire delle funzioni personalizzate.
La creazione di funzioni personalizzate può essere molto utile per scopi didattici: dovendo, da un lato, individuare gli argomenti della funzione (i dati variabili) e, dall’altro, strutturare la funzione creando una formula “su misura”, l’alunno viene “naturalmente” indirizzato ad usare le sue capacità di analisi e di sintesi.
In Matematica, ad esempio, è possibile far costruire una funzione che consenta il calcolo dell’ipotenusa di un triangolo rettangolo, oppure funzioni “più complesse” per il calcolo dei volumi dei solidi; in Economia Aziendale è possibile far costruire funzioni per “scorporare” l’IVA o per calcolare determinati indici di bilancio; in Scienza delle Finanze è possibile creare funzioni per calcolare i “risultati differenziali” del bilancio dello Stato, … e gli esempi possono continuare con materie come Fisica, Elettronica, Economia politica, …
Per creare delle funzioni complesse è necessario avere una buona conoscenza del linguaggio Visual Basic ma la maggior parte delle funzioni può essere creata utilizzando solo operatori aritmetici e semplici formule e, pertanto, possiamo procedere alla loro “costruzione” senza grosse preoccupazioni!
Ciò premesso, non ci resta che metterci a lavoro ed esaminare la procedura che consente di creare nuove funzioni con Microsoft Excel.
Per lavorare con Visual Basic è opportuno visualizzare la barra multifunzione SVILUPPO che non appare tra quelle predefinite; la procedura più rapida per renderla disponibile è quella di posizionarsi con il mouse su una qualsiasi delle barre multifunzione, azionare il menu contestuale (con un clic sul pulsante destro del mouse) e scegliere la voce PERSONALIZZA BARRA MULTIFUNZIONE.
A video appare la finestra OPZIONI DI EXCEL con già selezionata, sulla destra, la voce PERSONALIZZAZIONE BARRA MULTIFUNZIONE: non ci resta che individuare sulla destra della finestra la barra SVILUPPO ed aggiungere una spunta.
Ora che abbiamo reso visibile la barra multifunzione SVILUPPO, per accedere a Visual Basic è sufficiente fare clic sul pulsante omonimo presente all’inizio della barra.
Nel nostro esempio, gli argomenti della funzione AreaTriangolo sono due, ovvero la base e l’altezza; se chiamiamo BASE e ALTEZZA le due variabili la sintassi da utilizzare nel MODULO sarà la seguente:
Public Function AreaTriangolo (BASE, ALTEZZA) AreaTriangolo = (BASE*ALTEZZA)/2 End Function
Il comando ESEGUI SUB/USERFORM posto nel menu ESEGUI, o semplicemente il tasto funzione F5, consente di verificare la correttezza di quanto trascritto nel MODULO e di “formattare” adeguatamente il suo contenuto (se non si commettono errori vedremo comparire la finestra MACRO).
Non ci resta che chiudere Microsoft Visual Basic e tornare al foglio di calcolo (il salvataggio del Modulo avviene automaticamente); la funzione personalizzata è pronta per essere utilizzata: per richiamarla in una cella del foglio di calcolo è sufficiente utilizzare il pulsante INSERISCI FUNZIONE posto nella barra FORMULE e cercare la nostra funzione AreaTriangolo (per individuarla velocemente, possiamo filtrare le funzioni selezionando la voce DEFINITE DALL’UTENTE dal menu CATEGORIA.
Dopo aver selezionato la nostra funzione, possiamo digitare gli argomenti attraverso la finestra ARGOMENTI FUNZIONE o richiamare delle celle dal foglio di calcolo, proprio come qualsiasi altra funzione di Excel.
L’unica differenza rispetto alle altre funzioni predefinite è che la nostra è priva della “Guida in linea”: esiste, comunque, una procedura anche per superare tale inconveniente … ma crediamo che non sia il caso di parlarne, almeno in questo editoriale!