Moduldefinitionen in VBA
Ein Modul kann zusammengehörige Unterprogramme zusammenfassen. Die Namen von Unterprogrammen eines Moduls brauchen nur innerhalb des Moduls eindeutig zu sein.
Die meisten VBA -Entwicklungsumgebungen erlauben es, mehrere Module anzulegen und zu benennen. (Wie dies genau geschieht hängt von der verwendeten Entwicklungsumgebung ab und wird daher in dieser Lektion nicht behandelt.)
Kuckuck
''' \module Vogel
''' \brief Das Lied "Auf einem Baum ein Kuckuck sass"
'' Refrain ausgeben
Private Sub Refrain()
Debug.Print "Sim sa la dim, bam ba,"
Debug.Print "Sa la du, sa la dim -"
End Sub
'' Lied ausgeben
Sub Ausgeben()
Debug.Print "Auf einem Baum ein Kuckuck, -": Call Refrain
Debug.Print "Auf einem Baum ein Kuckuck sass."
Debug.Print "Da kam ein junger Jaeger, -": Call Refrain
Debug.Print "Da kam ein junger Jaegersmann."
Debug.Print "Der schoss den armen Kuckuck, -": Call Refrain
Debug.Print "Der schoss den armen Kuckuck tot."
End SubVogel
''' \module Vogel
''' \brief Das Lied "Ein Vogel wollte Hochzeit machen"
'' Refrain ausgeben
Private Sub Refrain()
Debug.Print "Fi-di-ra-la-la, fi-di-ra-la-la, fi-di-ra-la-la-la-la!"
End Sub
'' Lied ausgeben
Sub Ausgeben()
Debug.Print "Ein Vogel wollte Hochzeit machen, in dem gruenen Walde."
Call Refrain
Debug.Print "Die Drossel war der Braeutigam, die Amsel war die Braute."
Call Refrain
Debug.Print "Die Lerche, die Lerche, die fuehrt die Braut zur Kerche."
Call Refrain
End SubModul1
Sub Lieder()
Kuckuck.Ausgeben
Vogel.Ausgeben
End Sub
Innerhalb jeder Moduldefinition wurde das Unterprogramm "Refrain" mit dem Schlüselwort "Private" definiert, es kann also von außen (etwa vom Modul "Modul1") nicht aufgerufen werden.
In der Funktion "main" wird zunächst das Unterprogramm "Kuckuck.Ausgeben" aufgerufen. Man sagt auch, daß dem Modul "Kuckuck" die Nachricht "Ausgeben" geschickt werde. Dieselbe Nachricht wird in der nächsten Anweisung an ein anderes Modul geschickt und hat dann auch eine andere Wirkung.
Obwohl das von VBA nicht so verstanden wird, wurde hier zur Dokumentation des Moduls eine bestimmte Schreibweise verwendet, damit Module wenigstens einheitlich dokumentiert werden können. Dabei kennzeichnet der Text "\module" eine Moduldokumentation und der Text "\brief" leitet eine Kurzbeschreibung ein.
- A Liedmodul erweitern
- Erweitern Sie das Modul "Kuckuck" und das Modul "Vogel" um jeweils ein Unterprogramm "nameAusgeben", das den Namen des jeweiligen Liedes ausgibt. Die schon vorhandenen Unterprogramme dieser beiden Module dürfen dabei nicht verändert werden. Rufen Sie diese Unterprogramme in sinnvoller Weise in der Hauptfunktion "Lieder" auf.
- A Grußklassen definieren
- Schreiben Sie ein Modul "Englisch" und ein Modul "Deutsch", in dem jeweils ein Unterprogramm "print_hallo" definiert wird. Das Unterprogramm "DruckHallo" des Moduls "Englisch" soll eine Begrüßung auf Englisch (z.B., den Text "Hello!") ausgeben, das Unterprogramm "DruckHallo" der Klasse "Deutsch" soll eine Begrüßung auf Deutsch (z.B., den Text "Hallo!") ausgeben. Schreiben Sie ein Unterprogramm in einem dritten Modul, das den beiden zuvor definierten Modulen jeweils die Nachricht "PrintHallo" schickt und so einen Gruß auf Deutsch und einen Gruß auf Englisch ausgibt.