Declara el nombre, los argumentos y el código que forman el cuerpo de un procedimiento Function.
Sintaxis
Function name [(arglist)] [statements] [name=expression] [Exit Function] [statements] [name=expression] End Function
Argumentos:
Nombre: nombre de la función; sigue las convenciones de denominación de variables estándar.
Arglist: lista de variables que representan argumentos que se transfieren al procedimiento Function cuando se llama. Las comas separan varias variables.
El argumento arglist tiene la sintaxis y las partes siguientes:
[ByVal | ByRef] varname[( )]
Argumentos Arglist:
ByVal: indica que el argumento se ha transferido mediante un valor.
ByRef: indica que el argumento se ha transferido mediante una referencia.
Varname: nombre de la variable que representa el argumento; sigue las convenciones de denominación de variables estándar.
Statements: cualquier grupo de sentencias que se vayan a ejecutar en el cuerpo del procedimiento Function.
Expression: valor de retorno de Function.
Observaciones
Si no se especifica explícitamente el uso de Public o Private, los procedimientos Function son públicos de forma predeterminada, es decir, son visibles para todos los demás procedimientos del script. El valor de las variables locales en una función no se conserva entre las llamadas al procedimiento.
No puede definir un procedimiento Function dentro de ningún otro procedimiento (por ejemplo, Sub o Property Get).
La sentencia Exit Function provoca una salida inmediata de un procedimiento Function. La ejecución del programa continúa con la sentencia que sigue a la sentencia que llamó al procedimiento Function. Puede aparecer cualquier cantidad de sentencias Exit Function en cualquier parte de un procedimiento Function.
Al igual que un procedimiento Sub, un procedimiento Function es un procedimiento independiente que puede tomar argumentos, realizar una serie de sentencias y cambiar los valores de sus argumentos. Sin embargo, a diferencia de un procedimiento Sub, puede utilizar un procedimiento Function en la parte derecha de una expresión de la misma forma que utiliza cualquier función intrínseca, como las funciones Sqr, Mid o Chr, cuando desea utilizar el valor devuelto por la función.
Puede llamar a un procedimiento Function mediante el nombre de la función, seguido de la lista de argumentos entre paréntesis en una expresión. Consulte la sentencia Call para obtener información específica sobre cómo llamar a procedimientos Function.
Para devolver un valor de una función, asigne el valor al nombre de la función. Puede aparecer cualquier cantidad de estas asignaciones en cualquier parte del procedimiento. Si no se asigna ningún valor al nombre, el procedimiento no devuelve nada.
En el siguiente ejemplo se muestra cómo asignar un valor de retorno a una función denominada FindValue. En este caso, False se asigna al nombre para indicar que no se ha encontrado ningún valor.
Ejemplo 1:
Function FindValue(val)
Dim notFound
notFound = True
'Business Logic
'val not found. Return a val of False.
If notFound Then
FindValue = False
Exit Function
End If
' Business Logic
End Function
'Usage:-
val = FindValue(8)
Las variables utilizadas en los procedimientos Function se dividen en dos categorías: las que se declaran explícitamente en el procedimiento y las que no. Las variables que se declaran explícitamente en un procedimiento siempre son locales para el procedimiento. Las variables que se utilizan pero no se declaran explícitamente en un procedimiento también son locales, a menos que se declaren explícitamente en el nivel más alto fuera del procedimiento.