Guida di LibreOffice 24.8
Definisce una subroutine.
[Private | Public] Sub name[(argument1 [As typename][, argument2[char][,...]])]
' istruzioni
[Exit Sub]
' istruzioni
End Sub
name: nome della subroutine.
arguments: parametri facoltativi da passare alla subroutine.
{[Optional [ByRef|ByVal]]|ParamArray} argument {{As typename|char}[ = expression]|[()]As Variant}
Optional: l'argomento non è obbligatorio.
ByRef: l'argomento viene passato come riferimento. ByRef è l'impostazione predefinita.
ByVal: l'argomento viene passato come valore. Il suo valore può essere modificato dalla routine richiamata.
char: carattere di dichiarazione del Tipo.
typename: nome del tipo di dati primitivo. Si possono specificare anche tipi definiti in librerie o moduli.
= expression: specifica un valore predefinito per l'argomento, che rispetti il tipo dichiarato. Optional: per ogni argomento di questo tipo è necessario specificare un valore predefinito.
ParamArray: usate ParamArray quando il numero di parametri non è predeterminato. Uno scenario tipico è quello di una funzione di Calc definita dall'utente. L'uso di ParamArray dovrebbe essere limitato come ultimo parametro di una routine.
L'uso di ParamArray o = expression richiede che Option Compatible sia posizionato, in un modulo, prima della parte eseguibile del programma.
Se usate Option VBASupport 1, gli argomenti Optional senza un valore predefinito (= espressione) vengono inizializzati in base al loro tipo di dati, fatta eccezione per Variant.
{Boolean|Byte|Currency|Date|Double|Integer|Long|Object|Single|String|Variant}
Sub ExampleExit
Dim sReturn As String
Dim sListArray(10) As String
Dim siStep As Single
For siPasso = 0 to 10 ' Popola la matrice con dati di prova
sListArray(siStep) = chr$(siStep + 65)
MsgBox sListArray(siStep)
Next siStep
sReturn = LinSearch(sListArray(), "B")
Print sReturn
End Sub
Function LinSearch( sList(), sItem As String ) As Integer
Dim iCount As Integer
' Linsearch ricerca un TextArray:sList() per una TextEntry:
' Il valore restituito è l'indice della voce o 0 (Null)
For iCount=1 To Ubound( sList() )
If sList( iCount ) = sItem Then
Exit For ' sVoce trovato
End If
Next iCount
If iCount = Ubound( sList() ) Then iCount = 0
LinSearch = iCount
End Function