Příkaz Function

Funkce je blok kódu, který se při zavolání spustí. Její volání je obvykle součástí výrazu.

Funkci můžete předat data, označovaná jako parametry či argumenty. Parametr lze předat hodnotou či odkazem. Při předání odkazem se změny parametry provedené ve funkci vrátí zpět do kódu, který funkci zavolal.

Funkce zpravidla vrátí nějaká data jako výsledek.

Syntaxe:

Diagram příkazu Function


  [Private | Public] Function Name[char] (argument1 [As Type][, argument2[char][,...]]) [As typename]
          příkazy
      [Exit Function]
          příkazy
  End Function

Parametry:

oblastPlatnosti: Výchozí oblastí platnosti pro funkci je Public. Oblast Private označuje interní podprogram modulu, tj. není zamýšleno používat jej z jiných modulů.

název: Název podprogramu.

agrumenty: Parametry předávané podprogramu.

Fragment argumentu

Fragment argumentů


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

Optional: Tento argument není povinný.

ByRef: Tento argument je předáván odkazem. Jedná se o výchozí nastavení.

ByVal: Tento argument je předáván hodnotou. Jeho hodnota může být volaným podprogramem změněna.

char: Znak deklarace typu.

typename: Název primitivního datového typu. Lze uvést také typy definované v knihovně nebo v modulu.

= expression: Určuje výchozí hodnotu argumentu, odpovídající deklarovanému typu. Každý argument s výchozí hodnotou je nutné označit jako Optional.

ParamArray: Použijte jej v případě, že není znám počet parametrů. Typickým případem jsou uživatelem definované funkce v Calcu. Použití ParamArray by se mělo omezit na poslední argument procedury.

tip

Použití možnosti ParamArray nebo = expression vyžaduje, aby bylo před spustitelným programem v modulu zadáno Option Compatible.


warning

Při použití volby Option VBASupport 1 se argumenty, které jsou označeny jako Optional, ale nemají výchozí hodnotu (= expression), se inicializují podle svých datových typů (kromě typu Variant).


Fragment názvu typu

Fragment primitivních datových typů


      {Boolean|Byte|Currency|Date|Double|Integer|Long|Object|Single|String|Variant}
    
Fragment znaku

Fragment znaku deklarace typu


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

Příklady:


Sub ExampleExit
Dim sReturn As String
Dim sListArray(10) As String
Dim siStep As Single
    For siStep = 0 to 10 ' Naplní pole testovacími údaji
        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 vyhledá v TextArray:sList() položku TextEntry:
' Návratová hodnota je index záznamu nebo 0 (Null)
    For iCount=1 To Ubound( sList() )
        If sList( iCount ) = sItem Then
            Exit For ' nalezeno sItem
        End If
    Next iCount
    If iCount = Ubound( sList() ) Then iCount = 0
    LinSearch = iCount
End Function

Podpořte nás!