Arbeiten mit Prozeduren und Funktionen
Im Folgenden wird die grundlegende Verwendung von Prozeduren und Funktionen in Collabora Office Basic beschrieben.
Wenn Sie ein neues Modul erstellen, fügt Collabora Office Basic automatisch eine SUB namens "Main" ein. Dieser Standardname hat nichts mit der Reihenfolge oder dem Ausgangspunkt eines Collabora Office-Basic-Projekts zu tun. Sie können diese SUB auch problemlos umbenennen.
Es gelten gewisse Einschränkungen für die Namen von öffentlichen Variablen, Prozeduren (sub) und Funktionen (function). So ist es nicht zulässig, den Namen eines Moduls derselben Makrobibliothek zu verwenden.
Prozeduren (SUB-Blöcke) und Funktionen (FUNCTION-Blöcke) helfen Ihnen dabei, einen strukturierten Überblick über Ihr Programm zu behalten, indem sie das Programm in logische Abschnitte aufteilen.
Ein Vorteil von Prozeduren und Funktionen liegt darin, einmal entwickelten Programmcode für bestimmte Aufgabenkomponenten in anderen Projekten verwenden zu können.
Übergeben von Variablen an Prozeduren (SUB) und Funktionen (FUNCTION)
Variablen können sowohl an Prozeduren als auch an Funktionen übergeben werden. SUB oder FUNCTION müssen jedoch so deklariert werden, dass sie Parameter erwartet:
Sub SubName(Parameter1 As Type, Parameter2 As Type,...)
Programmcode
End Sub
Die SUB wird mit folgender Syntax aufgerufen:
SubName(Value1, Value2,...)
Die an eine SUB übergebenen Parameter müssen zu den in der SUB-Deklaration definierten Parametern passen.
Das Gleiche gilt für die Verwendung von FUNCTION, mit dem Unterschied, dass sie ein Funktionsergebnis zurückliefern. Sie bestimmen das Funktionsergebnis, indem Sie den Wert, den die Funktion zurückliefern soll, dem Funktionsnamen zuweisen:
Function FunctionName(Parameter1 As Type, Parameter2 As Type,...) As Type
Programmcode
FunktionsName=Ergebnis
End Function
FUNCTION wird mit folgender Syntax aufgerufen:
Variable=FunktionsName(Parameter1, Parameter2,...)
Außerdem können Sie eine Prozedur oder Funktion mit dem vollständig qualifizierten Namen aufrufen:
Library.Module.Macro()
Um beispielsweise den Autotext-Makro in der Bibliothek Gimmicks aufzurufen, geben Sie den folgenden Befehl ein:
Gimmicks.AutoText.Main()
Übergeben von Variablen als Wert oder Referenz
Sie können Parameter entweder als Referenz oder als Wert an SUB oder FUNCTION übergeben. Falls nicht anders festgelegt, werden Parameter standardmäßig immer als Referenz übergeben. Dies bedeutet, dass SUB beziehungsweise FUNCTION den Parameter erhält und seinen Wert lesen und ändern kann.
Um einen Parameter als Wert zu übergeben, fügen Sie beim Aufruf SUB oder FUNCTION das Schlüsselwort "ByVal" vor dem Parameter ein, beispielsweise:
Ergebnis = Funktion(ByVal Parameter)
In diesem Fall kann die Funktion den ursprünglichen Inhalt des Parameters nicht ändern, da sie nur den Wert erhält, nicht jedoch den Parameter selber.
Gültigkeitsbereich von Variablen
Eine Variable innerhalb von SUB oder FUNCTION definiert bleibt dort nur solange gültig, bis die Prozedur verlassen wird. Diese ist als eine "lokale" Variable bekannt. In vielen Fällen benötigen Sie eine Variable, die in allen Prozeduren, in jedem Modul aller Bibliotheken gültig ist, oder nachdem SUB oder FUNCTION ausgeführt wird.
Deklarieren von Variablen außerhalb von SUB oder FUNCTION
Global VarName As TYPENAME
Diese Variable bleibt während die gesamte Collabora Office-Sitzung gültig.
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.
Beispiele für private Variablen
Durch das Setzen von CompatibilityMode(true) werden private Variablen bezüglich eines einzelnen Moduls als privat behandelt.
' ***** 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
Speichern von Variableninhalten nach dem Verlassen von SUB oder FUNCTION
Static VarName As TYPENAME
Die Variable behält ihren Wert bis zum nächsten Einstieg in FUNCTION oder SUB. Die Deklaration muss innerhalb von SUB oder FUNCTION stehen.
Festlegen des Rückgabewert-Typs von FUNCTION
Um den Typ der Rückgabevariablen einer Funktion zu definieren, hängen Sie wie bei einer Variablen ein Typ-Deklarationszeichen an den Funktionsnamen an oder geben den Typ am Ende der Parameterliste durch "As" und das entsprechende Schlüsselwort an. Beispiel:
Function WordCount(WordText As String) As Integer