Instrução Function

Declara o nome, os argumentos e o código que formam o corpo de um procedimento Function.

Sintaxe

Function name [(arglist)]
   [statements]
   [name=expression]
   [Exit Function] 
   [statements]
   [name=expression]
End Function

Argumentos:

  • Name: Nome da Função; segue as convenções padrão de nomenclatura de variável.

  • Arglist: Lista de variáveis que representam os argumentos transmitidos para o procedimento Function quando ele é chamado. Vírgulas separam várias variáveis.

    O argumento arglist tem a seguinte sintaxe e partes:

    [ByVal | ByRef] varname[( )]

    Argumentos de Arglist:

    • ByVal: Indica que o argumento foi informado por valor.

    • ByRef: Indica que o argumento foi informado por referência.

    • Varname: Nome da variável que representa o argumento; segue as convenções padrão de nomenclatura de variável.

  • Instruções: Qualquer grupo de instruções a serem executadas no corpo do procedimento Function.

  • Expressão: Valor de retorno da Função.

Comentários

Se não forem especificados explicitamente usando a instrução Public ou Private, os procedimentos Function serão públicos por padrão, ou seja, estarão visíveis para todos os outros procedimentos no seu script. O valor das variáveis locais em um procedimento Function não é preservado entre as chamadas para o procedimento.

Não é possível definir um procedimento Function dentro de qualquer outro procedimento (por exemplo, Sub ou Property Get).

A instrução Exit Function causa a saída imediata de um procedimento Function. A execução do programa continua com a instrução que sucede a instrução que chamou o procedimento Function. É possível incluir qualquer número de instruções Exit Function em um procedimento Function.

Assim como o Sub, o Function é um procedimento separado que pode obter argumentos, executar uma série de instruções e alterar os valores de seus argumentos. No entanto, diferentemente de um procedimento Sub, você pode usar um procedimento Function no lado direito de uma expressão da mesma forma que usa qualquer função intrínseca, como Funções Sqr, Mid ou Chr, quando quiser usar o valor retornado pela função.

Você chama um procedimento Function usando o nome da função, seguido pela lista de argumentos entre parênteses, em uma expressão. Consulte a instrução Call para obter informações específicas sobre como chamar procedimentos Function.

Para retornar um valor de uma função, atribua o valor ao nome da função. É possível incluir qualquer número dessas atribuições no procedimento. Se nenhum valor for atribuído ao nome, o procedimento não retornará nada.

O exemplo a seguir mostra como atribuir um valor de retorno a uma função chamada FindValue. Nesse caso, o valor False é atribuído ao nome para indicar que algum valor não foi encontrado.

Exemplo 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)

As variáveis usadas nos procedimentos Function se enquadram em duas categorias: aquelas que são explicitamente declaradas dentro do procedimento e aquelas que não são. As variáveis declaradas explicitamente em um procedimento são sempre locais em relação ao procedimento. As variáveis que são usadas, mas não estão declaradas explicitamente em um procedimento, também são locais, a menos que sejam declaradas explicitamente no nível mais alto fora do procedimento.