Indhold
Indholdsfortegnelse 🔎︎

# Function-udtryk

Angiver en subrutine der kan bruges som et udtryk til at fastslå en returneringstype.

Udtrykkene Sub eller Function er ligner hinanden som metoder uden skelnen. De modtager parametre ved overførsel, der tillader at de ændres. LibreOffice Basic-kompileren accepterer deres respektive syntaks bliver brugt i flæng.

### Syntaks:

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

### Parametre:

scope: Function's standardrækkevidde er Public. En Private rækkevidde betegner en modul-intern rutine, der ikke et 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 standard.

ByVal: Argumentet overføres ved værdi. Det 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 argumentets standardværdi, 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 typiske scenarie er en brugerdefineret funktion i Calc. Anvendelse af ParamArray bør begrænses til det sidste argument i en rutine.

Anvekdelse af ParamArray eller = expression kræver, at Option Compatible er placeret i et modul foran den programkode, der skal udføres.

Når du bruger Option VBASupport 1, initialiseres Optional-argumenter uden standardværdi (= expression) efter deres datatype, undtagen Variant.

##### fragment af typename

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

##### fragment af erklæringstegn

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

## 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