|
| Oltre alle procedure, esiste un'altra tipologia di sottoprogramma, ovvero le Funzioni.
Mentre le procedure non restituiscono valori e si limitano a variare gli argomenti loro passati, le funzioni restituiscono un singolo valore che può essere assegnato ad una variabile o usato allinterno di unespressione.
|
|
| Una tipica funzione ha la seguente sintassi:
|
|
Public Function NomeFunzione(elencoParametri) As TipoDato
NomeFunzione = QualcheValore
End Function
|
|
| Nella dichiarazione della funzione, è possibile definire il tipo di dato che essa restituisce.
Allinterno della funzione è necessario comunicare quale valore la funzione deve restituire. Tale valore deve essere assegnato al nome identificativo della funzione.
|
|
| Nellesempio, che calcola la conversione da Iarde a metri, è definita la procedura conversione() che richiama la funzione IardeMetri(), che esegue il calcolo: |
|
Sub conversione()
Iarde = InputBox("Inserisci una misura in Iarde", "Conversione")
Metri = IardeMetri(CSng(Iarde))
MsgBox Iarde & " iarde corrispondono a " & Metri & " metri ", _
vbInformation, "Conversione"
End Sub
Public Function IardeMetri(Iarde As Single) As Single
Const Conv = 0.9
IardeMetri = Iarde * Conv
End Function
|
|
| In questo caso la funzione, restituendo un valore numerico, avrebbe potuto essere inserita anche in una espressione matematica. Esempio: |
|
Metri = IardeMetri(CSng(Iarde)) * 4 |
|
| Se dimentichiamo di assegnare il valore al nome funzione, questa non restituirà nulla. Inoltre a prescindere dal tipo di dati associato al valore restituito, la variabile alla quale si vuole assegnare questo valore dovrà contenere lo stesso tipo di dati. |
|
| Come nelle procedure anche nelle Function è possibile passare gli argomenti, ed è possibile definirne il numero ed il tipo. |
|
| E possibile uscire anticipatamente da una funzione usando il codice: |
|
Exit Function |
|
| Visual Basic prevede molte funzioni predefinite ed incorporate, ad esempio: |
|
| Abs(Numero) | Calcola il valore assoluto di un numero |
| Date | Restituisce la data di sistema |
| LCase(Stringa) | Converte una stringa in caratteri minuscoli |
|