EUCOOKIELAW_BANNER_TITLE

Differenze tra Sub e Function in VBA

Oggi dedichiamo questa lezione di introduzione al VBA alle differenze tra Sub (procedure o subroutine) ed alle Function (Funzioni).

Entrambe sono un’insieme di istruzioni che vengono eseguite in successione, le due differenze sostanziali sono che la Function restituisce un risultato alla fine dell’elaborazione mentre la Sub non lo fa ed in secondo luogo che la Sub deve essere chiamata da un’evento come ad esempio la pressione di un bottone, l’esecuzione da VBE o la chiamata da un’altra Sub mentre la funzione può essere anche richiamata direttamente da una cella di Excel e verrà eseguita ad ogni aggiornamento del foglio.

Prima di proseguire vi consiglio di creare un Modulo per poter replicare i 2 esempi riportati qui sotto.

Le Sub

Quando registrate una macro con il registratore di Macro quella che viene creata è appunto una Sub, quindi esegue la procedura, modifica apetto delle celle e valori ma non restituisce un risultato delle operazioni compiute al suo interno.

Una Sub esegue le istruzioni comprese tra Sub ed End Sub. Un esempio di Sub vuota è:

Sub PrimaSub()
     'qui vanno inserite le istruzioni
End Sub

Come potete vedere la sua definizione è veramente semplice. Dichiariamo la Sub ed il suo nome, a seguire le due parentesi che possono ospitare all’interno dei parametri da passare alla stessa per l’elaborazione (es. un riferimento ad una cella o una stringa), il blocco di istruzioni ed infine End Sub per dichiarare che la routine è teminata.

Vediamo un’esempio di Sub funzionante

Sub CiaoMondo()
     MsgBox "Ciao Mondo"
End Sub

Quando questa Sub viene eseguita mostra un messaggio con la scritta “Ciao Mondo”.

esembio sub ciaomondo

Esempio CiaoMondo

Le Function

La struttura delle Function è identica a quella delle Sub

Function PrimaFunction()
     'qui vanno inserite le istruzioni
End Function

Come dicevamo, a differenza delle Sub, le Function possono restituire un valore. Vengono usate solitamente per creare quelle che vengono chiamate UDF (User Defined Function) ovvero funzioni personalizzate che non sono presente in Excel.

Come per le Sub tra le parentesi possono essere indicati dei parametri che verranno processati durante l’esecuzione della funzione stessa. Come abbiamo detto le funzioni, a differenza delle Sub, possono essere richiamate direttamente da una cella di Excel.

Vediamo un esempio pratico

Function Ciao(ByVal nome) as String
     Ciao = "Ciao " & nome
End Function

Ora possiamo richiamare la funzione scrivendo in una cella di Excel
=Ciao("TuttoExcel")
il risultato sarà mostrato direttamente nella cella con la stringa “Ciao TuttoExcel”.

Esempio funzione

Esempio funzione

Come potrete immaginare imparare a scrivere delle Function può risolvere parecchi dei nostri problemi quotidiani ed è proprio questo lo scopo che mi prefiggo con tutti gli articoli che verranno dedicati alle Macro in Excel ed al VBA.

Spero che la differenza tra Sub e Function vi sia ora chiara, presto approfondiremo l’argomento.

Vi aspetto nei commenti per qualunque dubbio 🙂

A presto


MESSAGGIO DALL'AUTORE
Aiutami a far conoscere questo blog ad altre persone perché possa aiutare anche loro, condividi questo articolo su Facebook, Twitter, Google+ o Linkedin, non ti costa nulla e mi aiuterà a diffonderlo dandomi l'ispirazione per scrivere altri articoli.

gianfranco

Appassionato di informatica, fotografia e di tecnologia in generale. Esperto nell'uso di Excel e con tanta voglia di condividere le sue conoscenza con il mondo, sempre pronto a dare una mano (ma non più di due volte, altrimenti rimango senza).

Potrebbero interessarti anche...

Una risposta

  1. 20 Gennaio 2016

    […] appuntamento con gli articoli dedicati al VBA. Nell’articolo precedente abbiamo visto le differenze tra Sub e Function, ma prima di iniziare a scrivere del codice che abbia una qualche funzionalità è bene imparare […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

%d blogger hanno fatto clic su Mi Piace per questo: