Instruction Sub
Définit une sous-routine.
Les instructions Sub ou Function sont des méthodes similaires, sans distinction. Elles reçoivent des paramètres par référence leur permettant d'être modifiés. Le compilateur LibreOffice Basic accepte que leur syntaxe respective soit utilisée de manière interchangeable.
[Private | Public] Sub name[(argument1 [As typename][, argument2[char][,...]])]
'instructions
[Exit Sub]
'instructions
End Sub
nom: Nom du sous-programme.
arguments: Paramètres facultatifs à transmettre au sous-programme.
fragment d'argument
{[Optional [ByRef|ByVal]]|ParamArray} argument {{As typename|char}[ = expression]|[()]As Variant}
Paramètres
Optional : l'argument n'est pas obligatoire.
ByRef: l'argument est passé par référence. ByRef est par défaut.
ByVal: l'argument est passé par valeur. Sa valeur peut être modifiée par la routine appelée.
char: caractère de déclaration Type
typename: nom du type de données primitif. Les types définis par la bibliothèque ou le module peuvent également être spécifiés.
=expression: spécifiez une valeur par défaut pour l'argument, correspondant à son type déclaré. Optional est nécessaire pour chaque argument spécifiant une valeur par défaut.
ParamArray: Use ParamArray when the number of parameters is undetermined. A typical scenario is that of a Calc user-defined function. Using ParamArray should be limited to the last argument of a routine.
UsingParamArray or = expression require Option Compatible to be placed before the executable program code in a module.
When using Option VBASupport 1, Optional arguments with no default value (= expression) are initialized according to their data type, except if Variant.
Exemples :
Sub ExampleExit
Dim sReturn As String
Dim sListArray(10) As String
Dim siStep As Single
For siStep = 0 To 10 ' Remplir la matrice avec les données de test
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 recherche une TextEntry dans TextArray:sList() :
' La valeur retournée est l'index de l'entrée Or 0 (Null)
For iCount=1 To Ubound( sList() )
If sList( iCount ) = sItem Then
Exit For ' sItem trouvé
End If
Next iCount
If iCount = Ubound( sList() ) Then iCount = 0
LinSearch = iCount
End Function