Juste pour clarifier la réponse de John Rudy.
La sytax est optionnelle (petit 'o'), ce qui signifie que vous n'avez pas besoin de l'utiliser. D'après mon expérience, la plupart des codeurs VB6 n'utilisent pas la syntaxe et préfèrent à la place des paramètres «sans nom».
Si vous choisissez de l'utiliser, tous les paramètres suivants de l'appel de sous-procédure doivent être nommés.
La syntaxe de paramètre nommée peut être utilisée sur tous les paramètres, que l'argument correspondant ait été déclaré ou non à l'aide du mot clé VBA Optional
(majuscule 'O'). Considérons, par exemple, ce (un peu débile) la fonction VBA avec deux paramètres, un besoin et un Optional
:
Private Function TimesTen(_
ByVal Value As Long, _
Optional ByVal Factor As Long = 10 _
) As Long
TimesTen = Value * Factor
End Function
Dans VBA, je peux l'appeler à l'aide des paramètres nommés pour le paramètre requis (le Optional
paramter peut être simplement omis dans VBA, contrairement à C# .NET pour lequel Type.Missing
doit être utilisé pour tous les paramètres omis Optional
):
MsgBox TimesTen(Value:=9)
Si je voulais l'appeler avec les paramètres dans l'ordre « mauvais » (pourquoi ??) Je peut y parvenir en utilisant les paramètres nommés:
MsgBox TimesTen(Factor:=11, Value:=9)
Essayer d'utiliser un appel régulier de paramètre « sans nom » après un nom provoque une erreur de compilation:
MsgBox TimesTen(Value:=9, 11)
Alors pourquoi les codeurs VBA utilisent des paramètres nommés si les codeurs VB6 font rarement, même si elles utilisent essentiellement la même langue? Je pense que c'est parce que le VBA généré par l'enregistreur de macro des applications MS Office a tendance à générer (toujours?) Des paramètres nommés et de nombreux codeurs VBA apprennent la programmation de cette façon.
Merci, la partie Shift m'a fait penser que c'était une sorte de fonction de langage, je n'ai pas pensé à regarder les paramètres de la méthode. –
Pas de problème. :) –
"spécifiant null pour tous les paramètres" - en fait, vous devez spécifier Type.Missing pour les paramètres facultatifs manquants. – Joe