Instruction Sub

DĂ©finit une sous-routine.

Syntaxe :

Diagramme de l'instruction Sub


[Private | Public] Sub name[(argument1 [As typename][, argument2[char][,...]])]
    'instructions
    [Exit Sub]
    'instructions
End Sub

Paramètres :

nom: Nom du sous-programme.

arguments: Paramètres facultatifs à 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: 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.

tip

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


warning

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

fragment de types de données primitives


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

caractères de déclaration de type


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

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

Aidez-nous !