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:

Diagram over udtrykket Function


  [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

argument-fragment


      {[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.

tip

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


warning

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


typenavn-fragment

primitivt datatype-fragment


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

typeerklærings-tegn


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

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

Støt os venligst!