Gli elementi madre di un programma, quelli a cui è delegato il compito di contenere e gestire le routine e gli script VB che vengono lanciati allo scatenarsi di un evento, sono le Funzioni e le Sub.
Spesso non si fa molta distinzione tra questi elementi, dato che svolgono un ruolo abbastanza simile. La differenza tra loro è che una Funzione raccoglie una serie di operazioni, o script, che insieme formano una routine e restituisce un valore; una Sub è un programma all'interno di un programma e cosi via fino al software finale. Altra differenza è che solo una Sub viene chiamata allo scatenarsi di un evento, mentre una Funzione viene chiamata all'interno di una Sub al verificarsi di una data condizione o a prescindere.
Sia le Funzioni che le Sub possono essere pubbliche o private: pubbliche quando sono visibili a tutto il programma ed a tutte le Form e generalmente vengono inserite in un modulo di classe esterno; private quando fanno parte della Form in cui nascono, vivono e muoiono. Si utilizzano le parole chiave Public e Private e se omesse VB da per scontato che si tratta di una Funzione o di una Sub privata.
La sintassi di una Funzione pubblica è la seguente:
Public Function NomeFunzione (argomento As tipo)
istruzioni
End Function
La sintassi di una Funzione privata è la seguente:
Private Function NomeFunzione (argomento As tipo)
istruzioni
End Function
ed è possibile omettere la parola chiave Private.
Sintatticamente parlando per eseguire una Sub non bisogna far altro che sostituire la parola chiave Function con Sub e chiudere il blocco con End Sub al posto di End Function.
Per chiamare una Funzione o una Sub dall'esterno o all'interno di un'altra Funzione o Sub, basta far riferimento al nome e passare tra parentesi gli eventuali valori da assegnare agli argomenti (o parametri, o ancora variabili, che dir si voglia); è possibile utilizzare la parola chiave opzionale Call prima del nome della Funzione o Sub che sia.
Facciamo un esempio tanto chiarificatore quanto inutile ai fini pratici della realizzazione di un programma. Si crei un nuovo EXE standard e si acceda al codice della Form dal menu
Visualizza / Codice
e si inserisca il codice per la seguente Funzione:
Private Function Messaggio(testo As String)
MsgBox testo
End Function
Alla Funzione
Messaggio() passo la variabile
testo di tipo String che rappresenta il testo del messaggio che lanceremo. Si acceda poi alla Funzione / evento
Form_Load() semplicemente facendo doppio click in un punto qualsiasi della Form dalla visualizzazione struttura e si richiami la Funzione Messaggio() come segue:
Private Sub Form_Load()
Call Messaggio("Benvenuto!")
End Sub
In questa fase valorizzo la variabile testo inserendo materialmente il messaggio di benvenuto: il risultato sarà infatti una MsgBox con la scritta
Benvenuto!