Información sobre argumentos con nombre y argumentos opcionales
Cuando se llama a un procedimiento Sub o Function , puede proporcionar argumentos posicionalmente, en el orden en que aparecen en la definición del procedimiento, o puede proporcionar los argumentos por nombre sin tener en cuenta la posición.
Por ejemplo, el siguiente procedimiento Sub toma tres argumentos.
Sub PassArgs(strName As String, intAge As Integer, dteBirth As Date)
Debug.Print strName, intAge, dteBirth
End Sub
Puede llamar a este procedimiento proporcionando sus argumentos en la posición correcta, cada uno delimitado por una coma, como se muestra en el ejemplo siguiente.
PassArgs "Mary", 29, #2-21-69#
También puede llamar a este procedimiento proporcionando argumentos con nombre y delimitándolos mediante una coma.
PassArgs intAge:=29, dteBirth:=#2/21/69#, strName:="Mary"
Un argumento con nombre es un nombre de argumento seguido de dos puntos y un signo de igual (:=) al que le sigue el valor del argumento.
Los argumentos con nombre son especialmente útiles cuando se realiza una llamada a un procedimiento que cuenta con argumentos opcionales. Si usa argumentos con nombre, no tiene que incluir comas para indicar argumentos posicionales que falten. El uso de argumentos con nombre facilita el seguimiento de los argumentos pasados y omitidos.
Los argumentos opcionales están precedidos por la palabra clave Optional en la definición de procedimiento. También puede especificar un valor predeterminado para el argumento opcional en la definición de procedimiento. Por ejemplo:
Sub OptionalArgs(strState As String, Optional strCountry As String = "USA")
...
End Sub
Cuando llama a un procedimiento con un argumento opcional, puede elegir si especificar o no el argumento opcional. Si no especifica el argumento opcional, se usa el valor predeterminado, si lo hubiera. Si no se especifica ningún valor predeterminado, el argumento sería para cualquier variable del tipo especificado.
El siguiente procedimiento incluye dos argumentos opcionales: las varRegion
variables y varCountry
. La función IsMissing determina si se ha pasado al procedimiento un argumento Variant opcional.
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
Puede llamar a este procedimiento mediante argumentos con nombre, como se muestra en el ejemplo siguiente.
OptionalArgs varCountry:="USA", strState:="MD"
OptionalArgs strState:= "MD", varRegion:=5
Vea también
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.