Function-udtryk

Indhold
Indholdsfortegnelse 🔎︎

# Udtrykket Funktion

En funktion er en kodeblok, som udføres, når det kaldes. En funktion kaldes sædvanligvis i et udtryk.

Du kan videregive data, kendt som parametre eller argumenter, til en funktion. Du kan videregive en parameter som værdi eller som reference. Som reference sendes ændringer, der anvendes på parameteren i funktionen, tilbage til den kaldende kode.

En funktion returnerer normalt data som et resultat.

### Syntaks:

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

### Parametre:

scope: Funktioners standardrækkevidde er Public. En Private rækkevidde betegner en modul-intern rutine, der ikke er tænkt anvendt fra andre moduler.

name: Navnet på den subrutine, der skal indeholde den værdi, der returneres af funktionen.

arguments: Parametre, der skal overføres til subrutinen.

##### argumentfragment

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

##### Parametre

Optional: Argumentet er ikke obligatorisk.

ByRef: Argumentet overføres ved reference. ByRef er standarden.

ByVal: Argumentet overføres ved værdi. Dets værdi kan ændres af den kaldte rutine.

char: Typeerklærings-tegn.

typename: Primitivt datatypename. Der kan også angives biblioteker eller moduler, der er defineret som typer.

= expression: Angiv standardværdi til argumentet, der matcher dets erklærede type. Optional er nødvendig for ethvert argument, der angiver en standardværdi.

ParamArray: Brug ParamArray, når antallet af parametre er ubestemt. Et typisk scenarie er en brugerdefineret Calc-funktion. Brug af ParamArray bør begrænses til den sidste parameter i en rutine.

Brug af ParamArray eller = expression kræver, at Option Compatible er placeret foran den eksekverbare programkode i modulet.

Under brug af Option VBASupport 1 initialiseres Optional-argumenter uden nogen standardværdi (= expression) efter deres datatype, undtagen hvis den er Variant.

##### typenavn-fragment

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

##### tegn-fragment

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

## Eksempler:

    Sub ExampleExit
    Dim sReturn As String
    Dim sListArray(10) As String
    Dim siStep As Single
        For siStep = 0 to 10 ' Fyld array med testdata
            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 søger en TextArray:sList() efter en TextEntry:
    ' Returværdi er elementets indeks eller 0 (Null)
        For iCount=1 To Ubound( sList() )
            If sList( iCount ) = sItem Then
                Exit for ' sItem fundet
            End If
        Next iCount
        If iCount = Ubound( sList() ) Then iCount = 0
        LinSearch = iCount
    End Function

Relaterede emner

Grundlæggende om subrutiner

Brug af procedurer, funktioner og egenskaber

Erklæringen Sub

Udtrykket Property (Egenskab)