Declaración de subrutinas
Subrutinas
Ejemplo de sintaxis:
Sub SimpleSub()
... lines of code
EndSub
•Sub es la palabra clave que denota el procedimiento.
•SimpleSub es el nombre asignado a la subrutina.
•Los paréntesis pueden contener una lista de parámetros.
•El bloque de código de una subrutina empieza inmediatamente después del paréntesis de cierre.
•EndSub denota el final del bloque de código.
Nota: no se permiten declaraciones de subrutinas recursivas o en cascada (es decir, una subrutina no puede contener otra subrutina).
Parámetros
Los parámetros también se pueden pasar con procedimientos usando esta sintaxis:
•Todos los parámetros deben ser variables.
•Las variables deben tener el prefijo \$.
•Las variables locales se definen en una subrutina.
•Las variables globales se declaran de forma explícita, fuera de las subrutinas.
•Si hay varios parámetros, se separan con comas dentro de los paréntesis.
•Los parámetros pueden pasar valores.
Parámetros: pasar valores
Los parámetros se pueden pasar de dos maneras: por valor y por referencia, usando las palabras clave ByVal y ByRef respectivamente.
Sintaxis:
' definir sub CompleteSub()
[Sub CompleteSub( \$param, ByVal \$paramByValue, ByRef \$paramByRef )
] ...
•ByVal especifica que el parámetro se pasa por valor. Recuerde que la mayoría del os objetos solamente se pueden pasar por referencia.
•ByRef especifica que el parámetro se pasa por referencia. Se trata del método predeterminado si no se especifica ByVal ni ByRef.
Valores devueltos de funciones
Para devolver un valor desde una subrutina use la instrucción return. Este tipo de función se puede llamar desde dentro de una expresión.
Ejemplo:
' definir una función
[Sub MakeQualifiedName( ByVal \$namespacePrefix, ByVal \$localName )
if \$namespacePrefix = ""
return \$localName
else
return \$namespacePrefix & ":" & \$localName
endif
EndSub
]