Contenu

# Instruction Function

Une fonction est un bloc de code qui s'exécute lorsqu'elle est appelée. Une fonction est généralement appelée dans une expression.

Vous pouvez transmettre des données, appelées paramètres ou arguments, dans une fonction. Vous pouvez passer un paramètre par valeur ou par référence. Par référence, les modifications appliquées au paramètre dans la fonction seront renvoyées au code appelant.

Une fonction renvoie généralement des données en résultat.

### Syntaxe :

      [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

          {[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: utilisez ParamArray quand le nombre de paramètres est indéterminé. Un scénario typique est celui d'une fonction définie par l'utilisateur Calc. L'utilisation de ParamArray doit être limitée au dernier argument d'une routine.

L'utilisation de ParamArray ou = expression nécessite que Option Compatible soit placé avant le code du programme exécutable dans un module.

Lors de l'utilisation de Option VBASupport 1, les arguments Optional sans valeur par défaut (=expression) sont initialisés en fonction de leur type de données, sauf utilisation de Variant.

##### fragment typename

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

##### fragment char

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

## 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

Rubriques connexes

Bases des sous-routines

Utilisation de procédures, fonctions et propriétés

Instruction Sub

Instruction Property