[an error occurred while processing this directive]

Einführung in Moduldefinitionen in VBA im Rahmen der Lehre des Programmierens mit der Programmiersprache VBA. (VBA Moduldefinition VBA Modul definieren VBA), Lektion, Seite 721417
http://www.purl.org/stefan_ram/pub/vba_moduldefinitionen_de ist die kanonische URI dieser Seite.
Stefan-Ram-Startseite

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 Sub

Vogel
''' \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 Sub

Modul1
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.

Von der Stefan-Ram-Startseite ausgehend finden sich oft noch mehr Informationen zu Themen, die auf einer Seite angesprochen wurden. (Eine Verbindung zur Stefan-Ram-Startseite befindet sich ganz oben auf dieser Seite.)  |   Seiteninformation und Impressum  |   Formular für diese Seite betreffende Mitteilungen an den Herausgeber  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. slrprd, PbclevtugFgrsnaEnz