In unseren bisherigen Beispielen wurden nur Public oder Private Variablen zum Datenaustausch zwischen Prozeduren und Funktionen verwendet. Dies ist aber nur eine Möglichkeit desDatenaustauschs innerhalb eines Programms. Betrachten wir die Prozedur ZweizeiligMeldungAusgeben. Diese Prozedur kann nur den angegebenen Text ausgegeben. Die Prozedur selber ist aber durchaus in der Lage auch andere Texte auszugeben.
Wir wollen diese Prozedur nun so erweitern, daß sie einen beliebigen Text, der im Nachrichtenfenster erscheinen soll, ausgeben kann. Die Prozedur wird damit für andere Prozeduren die eine Nachrichtenausgabe benötigen interessant. Dazu muß sie in folgender Weise geändert werden:
Sub ZweizeiligMeldungAusgeben2(Text As String)
‚
‚ Gibt eine beliebige zweizeilige Meldung
‚ in einer Message Box aus.
‚
Beep
MsgBox „Nachricht:“ & vbCrLf & vbCrLf & Text, vbInformation, „VBA-Beispiel“
End Sub
Sub EingabeText2()
‚
‚ Texteingabe über die InputBox und
‚ Ausgabe über ein Nachrichtenfenster
‚
Dim Eingabe As String
Beep
Eingabe = InputBox(„Geben Sie einen kurzen Text ein!“)
Call ZweizeiligMeldungAusgeben2(Eingabe)
End Sub
Parameterübergabe an eine Prozedur.
Der Prozedur ZweizeiligMeldungAusgeben2 kann ein beliebiger Text übergeben werden, indem man ihn beim Aufruf der Prozedur als Parameter mit auf den Weg gibt. Dies wird in der ProzedurEingabeText2 demonstriert. Den Text den Sie eingeben wird im Nachrichtenfenster in der zweiten Textzeile ausgegeben.
Im Prozedurkopf der Prozedur ZweizeiligMeldungAusgeben2 wurde zur Aufnahme von Texten die Variable Text As String deklariert. Durch die Deklaration der Variablen im Prozedurkopf wird der Prozedur der Datentyp und der Name der Variablen mitgeteilt. Deshalb ist auch beim Aufrufen von Prozeduren und Funktionen denen ein Parameter übergeben wird, genau auf den Datentyp des Parameters zu achten. Stimmen die Datentypen nicht überein kommt es zu einer Fehlermeldung schon während der Entwicklung des Programms. Sie können aber über eine Typkonvertierung den Datentyp anpassen.