Instruction Function

Définit une sous-routine pouvant être utilisée en tant qu'expression pour déterminer un type de retour.

note

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.


Syntaxe :

Diagramme de l'instruction Function


  [Private | Public] Function Name[char] (argument1 [As Type][, argument2[char][,...]]) [As typename]
          Instructions
      [Exit Function]
          instructions
  End Function

Paramètres :

portée: La portée de l’instruction Function est Public pardéfaut. Une portée Private désigne une routine interne de module, non destinée à être utilisée à partir d'autres modules.

nom: Nom du sous-programme devant contenir la valeur renvoyée par la fonction.

arguments: Paramètres à transmettre au sous-programme.

fragment d'argument

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.

tip

UsingParamArray or = expression require Option Compatible to be placed before the executable program code in a module.


warning

When using Option VBASupport 1, Optional arguments with no default value (= expression) are initialized according to their data type, except if Variant.


typename fragment

primitive data types fragment


      {Boolean|Byte|Currency|Date|Double|Integer|Long|Object|Single|String|Variant}
    
char fragment

type declaration characters


      { % | & | ! | # | $ | @ }
    

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