Inhalte

# Anweisung "Function"

Eine Funktion ist ein Codeblock, der ausgeführt wird, wenn er aufgerufen wird. Eine Funktion wird normalerweise in einem Ausdruck aufgerufen.

Sie können Daten, bekannt als Parameter oder Argumente, an eine Funktion übergeben. Sie können einen Parameter als Wert oder als Verweis übergeben. Bei Verweis werden Änderungen, die auf den Parameter in der Funktion angewendet werden, an den aufrufenden Code zurückgesendet.

Eine Funktion gibt normalerweise Daten als Ergebnis zurück.

### Syntax:

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

### Parameter:

Bereich: Der Standardbereich der Funktion ist Public. Der Bereich Private bezeichnet eine modulinterne Routine, die nicht von anderen Modulen verwendet werden soll.

Name: Name der Unterroutine, die den von der Funktion zurückgegebenen Wert enthalten soll.

Argumente: Parameter, die an das Unterprogramm übergeben werden.

##### Argumentfragment

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

##### Parameter

Optional: Das Argument ist nicht obligatorisch.

ByRef: Das Argument wird als Referenz übergeben. NyRef ist die Standardeinstellung.

ByVal: Das Argument wird als Wert übergeben. Sein Wert kann von der aufgerufenen Routine geändert werden.

char: Typdeklarationszeichen.

typename: Primitiver Datentypname. Bibliotheks- oder moduldefinierte Typen können ebenfalls angegeben werden.

= expression: Legen Sie einen Standardwert für das Argument fest, der seinem deklarierten Typ entspricht. Optional ist für jedes Argument erforderlich, das einen Standardwert angibt.

ParamArray: Verwenden Sie ParamArray, wenn die Anzahl der Parameter unbestimmt ist. Ein typisches Szenario ist das einer benutzerdefinierten Calc-Funktion. Die Verwendung von ParamArray sollte auf das letzte Argument einer Routine beschränkt sein.

Die Verwendung von ParamArray oder = expression erfordert, dass Option Compatible vor dem ausführbaren Programmcode in einem Modul platziert ist.

Bei Verwendung von Option VBASupport 1 werden Argumente Optional ohne Standardwert (= expression) entsprechend ihrem Datentyp initialisiert, außer wenn Variant.

##### Typnamenfragment

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

##### Zeichenfragment

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

## Beispiele:

    Sub ExampleExit
    Dim sReturn As String
    Dim sListArray(10) As String
    Dim siStep As Single
        For siStep = 0 To 10 ' Array mit Testdaten füllen
            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 durchsucht ein TextArray:sList() nach einem TextEntry:
    ' Rückgabewert ist der Index des Eintrags oder 0 ( Null)
        For iCount=1 To Ubound( sList() )
            If sList( iCount ) = sItem Then
                Exit For ' sItem gefunden
            End If
        Next iCount
        If iCount = Ubound( sList() ) Then iCount = 0
        LinSearch = iCount
    End Function

Verwandte Themen

Grundlagen zu Unterroutinen

Prozeduren, Funktionen und Eigenschaften verwenden

Anweisung Sub

Anweisung Property