Hilfe für LibreOffice 7.3
Definiert eine Subroutine.
Anweisungen Sub, Function oder Property sind ohne Unterschied ähnliche Methoden. Sie erhalten Parameter per Referenz, sodass sie im Gegenzug geändert werden können. Der LibreOffice Basic-Compiler akzeptiert die austauschbare Verwendung ihrer jeweiligen Argumentsyntax.
[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