Hilfe für LibreOffice 7.2
Definiert eine Subroutine.
Sub, Function or Property statements are similar methods, without distinction. They receive parameters by reference allowing them to be modified in return. LibreOffice Basic compiler accepts their respective argument syntax to be used interchangeably.
[Private | Public] Sub name[(argument1 [As typename][, argument2[char][,...]])]
' Anweisungen
[Exit Sub]
' Anweisungen
End Sub
Name: Name der Subroutine.
Argumente: Optionale Parameter, die Sie an die Subroutine übergeben möchten.
{[Optional [ByRef|ByVal]]|ParamArray} argument {{As typename|char}[ = expression]|[()]As Variant}
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: Geben Sie einen Standardwert für das Argument an, 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.
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