Prozeduren  nach oben

Prozeduren beinhalten einfache Anweisungsfolgen die zu jedem Zeitpunkt aus aufgerufen werden können. Definiert wird eine Prozedur durch das Wort sub gefolgt vom Prozedurnamen und zwei runden Klammern. Anschließend folgt der Prozedurkörper - also alle Anweisungen die hier ausgeführt werden sollen. Die Prozedur endet wiederum mit den Worten end sub. Beispiel:

sub machWas()
  a = 5+b
end sub

dim a,b
b = 3
machWas()

Im Beispiel wird eine Prozedur mit dem Namen machWas definiert, die hier nur eine Anweisung enthält. Im Script werden dann die zwei Variablen a und b erstellt und b mit dem Wert 3 belegt. Anschließend wird die Prozedur aufgerufen, wodurch auch die darin enthaltenen Anweisungen ausgeführt werden und a auf 8 (5+b) gesetzt wird.
Prinzipiell ist es egal an welcher Stelle im Quellcode Sie eine Prozedur definieren - der Form halber sollten Sie es jedoch im Anfangsbereich des Scriptes tun.

Funktionen  nach oben

Funktionen entsprechen in etwa den Prozeduren, besitzen jedoch den Unterschied, dass Sie einen Wert zurück geben können. D.h. man kann sich z.B. ein Funktion schreiben die einen bestimmten Wert errechnet und diesen Wert dann auch entsprechend weiter verwenden. Eine Funktion wird prinzipiell gleich notiert, man schreibt lediglich statt sub das Wort function bzw. statt end sub die Worte end function. Beispiel:

function machWas()
  machWas = 5+b
end function

dim a,b
b = 3
a = machWas()

Im Beispiel wird die gleiche Funktion wie oben definiert (allerdings ist es nun eben eine Funktion und keine Prozedur mehr). Der Unterschied besteht nun darin, dass die Funktion den errechneten Wert zurück gibt. Der sogenannte Rückgabewert wird dazu innerhalb der Funktion durch Zuweisung des Funktionsnamens definiert. Heisst also die Funktion z.B. abc, wird mit abc = 3 der Rückgabewert der Funktion auf 3 gesetzt. Im Beispiel erhält damit die Variable a den Rückgabewert der Funktion machWas, a ist also 8.
Prinzipiell ist es egal an welcher Stelle im Quellcode Sie eine Funktion definieren - der Form halber sollten Sie es jedoch im Anfangsbereich des Scriptes tun.

Parameter übergeben  nach oben

In den meisten Fällen benötigen Funktionen und Prozeduren weitere Informationen (sogenannte Parameter) um richtig arbeiten zu können. Ein Parameter muss hierzu bei der Prozedur- bzw. Funktionsdeklaration mit angegeben werden. Innerhalb der Klammern wird dazu ein oder mehrere Variablennamen notiert (mehrere durch Kommata voneinander getrennt). Jede dieser Variablen repräsentiert dann einen Parameter, mit dem innerhalb der Prozedur/Funktion gearbeitet werden kann. Wird die Prozedur/Funktion aufgerufen muss auch hier dann innerhalb der Klammern anstelle der Variablennamen die jeweiligen Parameterwerte übergeben werden. Beispiel:

function Addition(a , b)
  Addition = a+b
end function

ergebnis = Addition(3,7)

Hier wird die Funktion Addition definiert, der zwei Parameter (a und b) übergeben werden müssen. Die Funktion selbst nutzt die Variablen um daraus den Rückgabewert zu errechnen. Wird die Funktion nun aufgerufen, müssen ihr entsprechend auch die Werte für die Variablen übergeben werden.

Werteparameter

Bei Parametern unterscheidet man zusätzlich nach Referenz- und Werteparametern. Werteparameter sind Parameter, bei denen lediglich der Wert einer Variablen an die Prozedur/Funktion übergeben wird. Wird also beispielsweise eine Funktion aufgerufen die einen Parameter erwartet und als Parameter wird statt einem absoluten Wert wie im Beispiel eine Variable verwendet, wird an die Funktion lediglich der Wert der Variablen übergeben und nicht die Variable selbst. Wird innerhalb der Funktion der Wert geändert, bleibt er außerhalb der Funktion erhalten. Prinzipiell sind alle Parameter erst mal Werteparameter; möchte man es explizit definieren, setzt man bei der Funktions-/Prozedurdeklaration einfach das Wort byVal vor den Parameternamen. Beispiel:

function Quadrat(byVal a)
  a = a^2
  Quadrat = a
end function

x = 4
ergebnis = Quadrat(x)

Der Vorteil von byVal: Auch wenn innerhalb der Funktion der Wert von a neu gesetzt wird, bleibt x jedoch weiterhin bei seinem Wert.

Referenzparameter

Referenzparameter sind Parameter, bei denen statt einem Wert die gesamte Variablen an die Prozedur/Funktion übergeben wird. Wird beispielsweise innerhalb der Funktion der Wert eines Referenzparameters geändert, ändert sich auch der Wert der Ursprungsvariablen außerhalb der Funktion. Möchte man Referenzparameter definieren, setzt man bei der Funktions-/Prozedurdeklaration einfach das Wort byRef vor den Parameternamen. Beispiel:

function Quadrat(byRef a)
  a = a^2
  Quadrat = a
end function

x = 4
ergebnis = Quadrat(x)

Der Vorteil von byRef: Wenn innerhalb der Funktion der Wert von a neu gesetzt wird, wird auch x gleichzeitig angepasst - a und x haben also stets den gleichen Wert.

Öffentliche und private Prozeduren und Funktionen  nach oben

Ebenso wie Variablen können auch Funktionen und Prozeduren als öffentlich oder privat deklariert werden. Soll eine Prozedur/Funktion als öffentlich gekennzeichnet werden, notiert man vor sub bzw. function das Wort public. Soll eine Prozedur/Funktion als privat gekennzeichnet werden, notiert man vor sub bzw. function das Wort private.