Mit Objekten kann man verschiedene Dinge machen. Das, was ein Objekt kann, nennt man eine Methode. Im VBA-Code werden Methoden - genau wie die weiteren Elemente einer Klasse, die wir später noch kennenlernen werden - einfach mit einem Punkt an die Objektbezeichnung angehängt. IntelliSense zeigt in seiner Auflistung vor einer Methode das Methoden-Symbol an.
Wir hatten ja gerade eben eine Klasse namens „Auto“
erstellt. Nun fügen wir dieser Klasse eine Methode hinzu. Autos können bekanntlich
hupen, also soll hupen
eine Methode aller Auto-Objekte werden. Außerdem
könnte man der Methode hupen
noch eine Zahl übergeben, die angibt, wie
lange gehupt wird. Da es aufwendig wäre, mit VBA tatsächlich Geräusche zu machen,
geben wir in unserem einfachen Beispiel einfach nur die Dauer als Zahl im
Direktfenster aus.
BMW.hupen(3) 3
Wie schon beschrieben, gehört die Definition für hupen
in das
Klassenmodul Auto
. Befinden sich in einem Klassenmodul öffentliche
Sub- oder Function-Prozeduren, handelt es sich dabei um die Methoden der
Klasse. Im Allgemeinen ist übrigens Function sinnvoller, weil man einen Rückgabewert
definieren kann, der z. B. angibt, ob die Prozedur erfolgreich ausgeführt wurde.
Fügen wir also in unser Klassenmodul Auto
folgende Prozedur ein:
Auto |
---|
Public Function hupen(Optional Sekunden As Integer = 2) As Boolean MsgBox Sekunden hupen = True End Function
Damit haben wir eine Methode erstellt, die True
zurückgibt, wenn
erfolgreich gehupt wurde. Die Hupe funktioniert also.
Zurück in einem Standardmodul können wir die Methode wie folgt aufrufen:
Modul1 |
---|
Public Sub Autos() Dim Familienkutsche As New Auto Familienkutsche.hupen Familienkutsche.hupen 1 End Sub
IntelliSense zeigt uns nach dem Punkt hinter Familienkutsche
in der
Auswahlliste hupen
an. Ob wir den Rückgabewert der Methode im weiteren Code tatsächlich auswerten
wollen, ist uns natürlich freigestellt.