Partager via


Présentation des arguments nommés et des arguments facultatifs

Lorsque vous appelez une procédure Sub ou Function , vous pouvez fournir des arguments position, dans l’ordre dans lequel ils apparaissent dans la définition de la procédure, ou vous pouvez fournir les arguments par nom, sans tenir compte de la position.

Par exemple, la procédure Sub suivante prend trois arguments.

Sub PassArgs(strName As String, intAge As Integer, dteBirth As Date) 
    Debug.Print strName, intAge, dteBirth 
End Sub

Vous pouvez appeler cette procédure en fournissant ses arguments à la position correcte, chacun délimité par une virgule, comme illustré dans l’exemple suivant.

PassArgs "Mary", 29, #2-21-69# 

Vous pouvez également appeler cette procédure en fournissant des arguments nommés, en délimitant chacun par une virgule.

PassArgs intAge:=29, dteBirth:=#2/21/69#, strName:="Mary" 

Un argument nommé est composé d’un nom pour l’argument, suivi d’un signe deux-points et d’un signe égal (:=), puis de la valeur de l’argument.

Les arguments nommés sont particulièrement utiles pour appeler une procédure qui possède des arguments facultatifs. Si vous utilisez des arguments nommés, il n’est pas nécessaire de placer des virgules pour représenter les arguments positionnels absents. L’utilisation d’arguments nommés facilite le suivi des arguments transmis et des arguments omis.

Les arguments facultatifs sont précédés de optionalmot clé dans la définition de procédure. Vous pouvez également spécifier une valeur par défaut pour l’argument facultatif dans la définition de la procédure. Par exemple :

Sub OptionalArgs(strState As String, Optional strCountry As String = "USA") 
    ...
End Sub

Lorsque vous appelez une procédure contenant un argument facultatif, vous pouvez choisir de spécifier ou non l’argument facultatif. Si vous ne le précisez pas, la valeur par défaut, si elle existe, est employée. Si aucune valeur par défaut n’est spécifiée, l’argument concerne toute variable du type spécifié.

La procédure suivante inclut deux arguments facultatifs, les varRegion variables et varCountry . La fonction IsMissing détermine si un argument Variant facultatif a été passé à la procédure.

Sub OptionalArgs(strState As String, Optional varRegion As Variant, Optional varCountry As Variant = "USA") 
    If IsMissing(varRegion) And IsMissing(varCountry) Then 
        Debug.Print strState 
    ElseIf IsMissing(varCountry) Then 
        Debug.Print strState, varRegion 
    ElseIf IsMissing(varRegion) Then 
        Debug.Print strState, varCountry 
    Else 
        Debug.Print strState, varRegion, varCountry 
    End If 
End Sub

Vous pouvez appeler cette procédure à l’aide d’arguments nommés, comme illustré dans l’exemple suivant.

OptionalArgs varCountry:="USA", strState:="MD" 
 
OptionalArgs strState:= "MD", varRegion:=5 

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.