Hilfe für Collabora Office 23.05
Im Folgenden ist die grundsätzliche Verwendung von Prozeduren, Funktionen und Eigenschaften in Collabora Office Basic beschrieben.
Wenn Sie ein neues Modul erstellen, implementiert Collabora Office Basic automatisch ein Sub namens "Main". Dieser voreingestellte Name beeinflusst nicht die Reihenfolge oder den Startpunkt von einem Collabora Office Basic Projekt. Sie können die Sub-Routine problemlos umbenennen.
Für die Namen Ihrer öffentlichen Variablen, Unterprogramme, Funktionen und Eigenschaften gelten einige Einschränkungen. Sie dürfen nicht denselben Namen wie eines der Module der gleichen Bibliothek verwenden.
Prozeduren (Routinen Sub), Funktionen (Function) und Eigenschaften (Property) helfen Ihnen, eine strukturierte Übersicht zu behalten, indem sie ein Programm in logische Teile unterteilen.
Ein Vorteil von Prozeduren, Funktionen und Eigenschaften ist, dass Sie einen einmal entwickelten Programmcode, der Task-Komponenten enthält, in einem anderen Projekt wiederverwenden können.
Variablen können an Prozeduren, Funktionen oder Eigenschaften übergeben werden. Die Funktion oder Eigenschaft Sub muss deklariert werden, um Parameter zu erwarten:
Sub SubName(Parameter1 As TYPENAME, Parameter2 As TYPENAME,...)
' Ihr Code kommt hier hin
End Sub
Das Sub wird mit der folgenden Syntax aufgerufen:
[Call] SubName( [Parameter1:=]Value1, [Parameter2:=]Value2, ...)
Die an Sub übertragenen Parameter müssen zu denen passen, die in der Deklaration von Sub angegeben sind.
Das gleiche Verfahren gilt für eine Funktion. Darüber hinaus geben Funktionen immer ein Funktionsergebnis zurück. Das Ergebnis einer Funktion wird definiert, indem der Rückgabewert dem Funktionsnamen zugewiesen wird:
Function FunctionName(Parameter1 As TYPENAME, Parameter2 As TYPENAME,...) As TYPENAME
' Ihr Code gehört hier hin
FunctionName=Result
End Function
Die Funktion wird mit der folgenden Syntax aufgerufen:
Variable = FunctionName( [Parameter1:=]Value1, [Parameter2:=]Value2, ...)
Eigenschaften verbinden die Syntax von Prozeduren und Funktionen. Eine Eigenschaft benötigt für gewöhnlich bis zu einem Parameter.
Private _IsApproved As TYPENAME
Property Get IsApproved As TYPENAME
' Ihr Code gehört hier hin
IsApproved = some_computation
End Property
Property Let IsApproved(value As TYPENAME)
' Ihr Code gehört hier hin
_IsApproved = computed_value
End Property
Die Eigenschaft wird durch die folgende Syntax aufgerufen:
var = IsApproved
IsApproved = some_value
Sie können auch vollqualifizierte Namen verwenden, um Prozeduren, Funktionen oder Eigenschaften aufzurufen:
[Call] Library.Module.Macro(), wobei Call optional ist.
Zum Beispiel, um das Makro Autotext von der Bibliothek Gimmicks aufzurufen, verwenden Sie den folgenden Befehl:
Gimmicks.AutoText.Main()
Parameter können entweder per Referenz oder per Wert an eine Prozedur, eine Funktion oder eine Eigenschaft übergeben werden. Sofern nicht anders angegeben, wird ein Parameter immer als Referenz übergeben. Das bedeutet, dass Sub, Function oder Property den Parameter bekommt und seinen Wert lesen und ändern kann.
Wenn Sie einen Parameter als Wert übergeben möchten, fügen Sie beim Aufruf von Sub, Function oder Property das Schlüsselwort ByVal vor dem Parameter ein, zum Beispiel:
Function ReadOnlyParms(ByVal p2, ByVal p2)
' Ihr Code gehört hier hin
End Function
result = ReadOnlyParms(parm1, parm2)
In diesem Fall wird der ursprüngliche Inhalt des Parameters durch Function nicht verändert, da sie nur den Wert und nicht den Parameter selbst erhält.
Funktionen, Prozeduren oder Eigenschaften können mit optionalen Parametern definiert werden, beispielsweise:
Sub Rounding(number, Optional decimals, Optional format)
' Ihr Code gehört hier hin
End Sub
Wenn Sie eine Funktion oder eine Unterroutine aufrufen, können Sie deren Argumente nach Position oder nach Namen übergeben. Die Übergabe nach Position bedeutet, dass nur die Argumente in der Reihenfolge aufgelistet werden, in der die Parameter in der Funktion oder Unterroutine festgelegt sind. Die Übergabe des Namens erfordert, dass Sie dem Argument den Namen des entsprechenden Parameters voranstellen, gefolgt von einem Doppelpunkt und einem Gleichheitszeichen (:=). Schlüsselwort-Argumente können in beliebiger Reihenfolge angezeigt werden. Beispiele finden Sie in der Basic-Funktion Replace().
Wenn Sie weniger Parameter übergeben müssen, verwenden Sie Schlüsselwort-Argumente. Das Übergeben von Werten für weniger Parameter nach Position erfordert, dass Werte für alle Parameter vor ihnen angegeben werden, ob optional oder nicht. Dadurch wird sichergestellt, dass sich die Werte an den richtigen Positionen befinden. Wenn Sie die Parameter nach Namen übergeben – mit Schlüsselwort-Argumenten – können Sie alle anderen Zwischenargumente weglassen.
Eine innerhalb von Sub, Function oder Property definierte Variable bleibt nur gültig, bis die Prozedur beendet wird. Dies wird als "lokale" Variable bezeichnet. In vielen Fällen benötigen Sie eine Variable, um in allen Prozeduren, in jedem Modul aller Bibliotheken oder nach Sub, Function oder Property gültig zu sein.
Global VarName As TYPENAME
Die Variable ist solange gültig, wie die Collabora Office-Sitzung andauert.
Public VarName As TYPENAME
Die Variable hat in allen Modulen Gültigkeit.
Private VarName As TYPENAME
Die Variable hat nur im Modul Gültigkeit.
Dim VarName As TYPENAME
Die Variable hat nur im Modul Gültigkeit.
Sie erzwingen, dass private Variablen modulübergreifend privat sind, indem Sie CompatibilityMode(True) setzen.
' ***** Module1 *****
Private myText As String
Sub initMyText
meinText = "Hallo"
Print "In Modul 1 : ", meinText
End Sub
' ***** Module2 *****
'Option Explicit
Sub demoBug
CompatibilityMode( True )
initMyText
' Gibt jetzt einen leeren String zurück
' (oder löst einen Fehler für Option Explicit aus)
Print "Jetzt in Modul 2 : ", meinText
End Sub
Static VarName As TYPENAME
Die Variable behält ihren Wert bis zur nächsten Eingabe einer Function, Sub oder Property. Die Deklaration muss innerhalb von Sub, Function oder Property existieren.
Fügen Sie wie bei Variablen ein Typdeklarationszeichen nach dem Funktionsnamen oder den durch As angegebenen Typ und den entsprechenden Datentyp am Ende der Parameterliste ein, um den Rückgabetyp der Funktion oder Eigenschaft zu definieren Wert, zum Beispiel:
Function WordCount(WordText As String) As Integer