Solo para aclarar la respuesta de John Rudy.
El sytax es opcional (pequeño 'o'), lo que significa que no tiene que usarlo. En mi experiencia, la mayoría de los codificadores VB6 no usan la sintaxis y prefieren los parámetros normales "sin nombre".
Si elige usarlo, todos los parámetros posteriores en la llamada a procedimiento secundario deben ser nombrados.
La sintaxis paramter nombrada se puede utilizar en todos los parámetros, independientemente de si el argumento correspondiente se declaró o no con la palabra clave VBA Optional
(mayúscula 'O'). Consideremos, por ejemplo, este (un poco tonto) función de VBA con dos parámetros, uno requerido y una Optional
:
Private Function TimesTen(_
ByVal Value As Long, _
Optional ByVal Factor As Long = 10 _
) As Long
TimesTen = Value * Factor
End Function
En VBA, puedo llamarlo usando parámetros con nombre para el parámetro requerido (el Optional
parametro puede ser simplemente omitido en VBA, al contrario que en C# .NET para los que Type.Missing
debe ser utilizado para todos los parámetros omitidos Optional
):
MsgBox TimesTen(Value:=9)
Si quería llamarlo con los parámetros en el orden 'equivocado' (¿por qué ??) me puede lograrlo usando parámetros con nombre:
MsgBox TimesTen(Factor:=11, Value:=9)
Tratar de utilizar una llamada parámetro 'sin nombre' regular después de una llamada provoca un error de compilación:
MsgBox TimesTen(Value:=9, 11)
Entonces por qué los programadores de VBA utilizan parámetros con nombre si codificadores VB6 rara vez lo hacen, a pesar de que utilizan esencialmente el mismo idioma? Creo que es porque el VBA generado por el grabador de macros de las aplicaciones de MS Office tiende a (¿siempre?) Generar parámetros nombrados y muchos codificadores de VBA aprenden la programación de esta manera.
Gracias, la parte de Shift me hizo pensar que era una especie de función de lenguaje, no pensé en mirar los parámetros del método. –
No hay problema. :) –
"especificando nulo para todos los parámetros" - en realidad debería especificar Type.Missing para los parámetros faltantes. – Joe