Vsebina

# Ukaz Function

Funkcija je nabor kode, ki se izvede s klicem. Funkcijo običajno kliče izraz.

Funkciji lahko podate podatke, imenujejo se parametri ali argumenti. Podate lahko parameter po vrednosti ali po sklicu. Če je podan po sklicu, se spremembe parametra v funkciji pošljejo nazaj kodi, ki je funkcijo klicala.

Funkcija običajno kot rezultat vrne podatke.

### Skladnja:

      [Private | Public] Function Name[char] (argument1 [As Type][, argument2[char][,...]]) [As typename]
              ukazi
          [Exit Function]
              ukazi
      End Function

### Parametri:

scope: privzeti domet (angl. scope) funkcije je Public (angl. javen). Domet Private (angl. zaseben) določa interno rutino modula, ki ni namenjena uporabi iz drugih modulov.

Ime: Ime podprograma, ki naj vsebuje vrednost, ki jo funkcija vrne.

Argumenti: parametri, ki bodo posredovani podprogramu.

##### Fragment argumenta

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

##### Parametri

Optional: argument ni obvezen.

ByRef: argument je podan po sklicu. ByRef je privzeta vrednost.

ByVal: argument je podan z vrednostjo. Njegovo vrednost lahko klicana rutina spremeni.

znak-vrste: znak za deklaracijo vrste.

ime-vrste: ime vrste primitivnih podatkov. Določite ga lahko tudi v knjižnici ali modulu definirane vrste.

= izraz: Določite privzeto vrednost za argument, ki se ujema z njegovo vrsto iz deklaracije. Optional je obvezen za vsak argument, ki ima določeno privzeto vrednost.

ParamArray: uporabite ParamArray, ko število parametrov ni določeno. Tipična raba je pri uporabniško določeni funkciji programa Calc. Uporaba ParamArray je omejena na zadnji argument rutine.

Uporaba ParamArray ali = izraz zahteva, da je Option Compatible postavljen pred izvedljivo programsko kodo v modulu.

Ko uporabljate Option VBASupport 1, se neobvezni argumenti Optional brez privzete vrednosti (= izraz) inicializirajo glede na njihovo vrsto podatkov, razen kadar so Variant.

##### fragment typename

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

##### fragment char

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

## Primeri:

    Sub ExampleExit
    Dim sReturn As String
    Dim sListArray(10) As String
    Dim siStep As Single
        For siKorak = 0 to 10 ' napolni polje s preizkusnimi podatki
            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
    ' LinIskanje išče v polju besedil TextArray:sSeznam() besedilo sVnos:
    ' vrne indeks elementa ali pa 0 (Null)
        For iCount=1 To Ubound( sList() )
            If sList( iCount ) = sItem Then
                Exit For ' sVnos je najden
            End If
        Next iCount
        If iCount = Ubound( sList() ) Then iCount = 0
        LinSearch = iCount
    End Function

Podobne teme

Osnove podprogramov

Uporaba procedur, funkcij in lastnosti

Ukaz Sub

Ukaz Property