Instrução Function

Uma função é um bloco de código que é executado quando chamado. Uma função é geralmente chamada em uma expressão.

Você pode passar dados, conhecidos como parâmetros ou argumentos, para uma função. Você pode passar um parâmetro por valor ou por referência. Quando for passado por referência, modificações feitas ao parâmetro na função serão enviados de volta para o código que chamou a função.

Funções geralmente retornam dados como resultado.

Sintaxe:

Diagrama da instrução Function


  [Private | Public] Function Name[char] (argument1 [As Type][, argument2[char][,...]]) [As typename]
          instruções
      [Exit Function]
          instruções
  End Function

Parâmetros:

scope: o escopo padrão da Function é Public. Um escopo Private denota uma rotina interna do módulo, que não é destinada a ser usada por outros módulos.

name: nome da sub-rotina que deverá conter o valor retornado pela função.

arguments: parâmetro a ser passado para a sub-rotina.

fragmento de argumento

fragmento de argumento


      {[Optional [ByRef|ByVal]]|ParamArray} argument {{As typename|char}[ = expression]|[()]As Variant}
    
Parâmetros

Optional: o argumento não é obrigatório.

ByRef: o argumento é passado por referência. ByRef é o padrão.

ByVal: o argumento é passado por valor. Seu valor pode ser modificado pela rotina chamada.

char: caractere de declaração de tipo.

typename: nome do tipo de dado primitivo. Podem ser especificados tipos definidos em bibliotecas e módulos.

= expression: especifica um valor padrão para o argumento que confere com seu tipo declarado.Optional é necessário para cada argumento que especifica um valor padrão.

ParamArray: Utilize ParamArray quando o número de parâmetros é indeterminado. Um cenário típico é de uma função definida pelo usuário no Calc. Utilizar ParamArray deveria ser limitado ao último argumento de uma rotina.

tip

Utilizar ParamArray ou = expression requer que Option Compatible seja colocada antes de um código executável num módulo.


warning

Ao utilizar Option VBASupport 1, argumentos Optional sem valor padrão (= expression) são inicializados de acordo com seus tipos de dados , com exceção de Variant.


fragmento de nome de tipo

fragmento de tipos primitivos de dados


      {Boolean|Byte|Currency|Date|Double|Integer|Long|Object|Single|String|Variant}
    
fragmento de caractere

caracteres de declaração de tipo


      { % | & | ! | # | $ | @ }
    

Exemplos:


Sub ExampleExit
Dim sReturn As String
Dim sListArray(10) As String
Dim siStep As Single
    For siStep = 0 to 10 ' Preencha a matriz com dados de teste
        sListArray(siStep) = chr$(siStep + 65)
        MsgBox sListArray(siStep)
    Next siStep
    sReturn = LinSearch(sListArray(), "B")
    Print sReturn
End Sub
 
Function LinSearch( sList(), sItem As String ) As Integer
Dim iCount As Integer
' Linsearch procura um TextArray:sList() para uma TextEntry:
' Valor de retorno é o índice da entrada ou 0 (Null)
    For iCount=1 To Ubound( sList() )
        If sList( iCount ) = sItem Then
            Exit For ' sItem encontrado
        End If
    Next iCount
    If iCount = Ubound( sList() ) Then iCount = 0
    LinSearch = iCount
End Function

♥ Doe para nosso projeto! ♥