Lösungen

Die Eval-Funktion richtig nutzen

Parameter übergeben

Selbstverständlich können Sie an die Funktionen, die Sie innerhalb der Zeichenketten verwenden, auch Parameter übergeben. Dazu fassen Sie diejenigen, die als Texte übergeben werden sollen, in doppelte Anführungszeichen ein. Das Beispiel in Listing 4 zeigt dieses Vorgehen. In der Formel, die von der Eval-Funktion ausgewertet wird, wird die benutzerdefinierte Funktion Ausgabe aufgerufen. Ihr wird als erster Parameter ein Text, als zweiter der Wert der Funktion Date() übergeben. Damit die Eval-Funktion nicht versucht, den Inhalt des ersten Parameters als Funktion auszuwerten, wird er in Anführungszeichen eingefasst. Und da sich der Parameter schon innerhalb einer Zeichenkette befindet, werden die Anführungszeichen verdoppelt.

Sub Parameter()
Dim strFormel As String
strFormel = "Ausgabe(""Datum:"",Date())"
Debug.Print Eval(strFormel)
End Sub
Function Ausgabe(strText As String, datDatum As Date) As String
Ausgabe = strText & CStr(datDatum)
End Function

Möchten Sie ein Datum als Parameter übergeben, fassen Sie es einfach in Doppelkreuze ein. Die dürfen Sie dann aber nicht noch einmal in Anführungszeichen setzen (Listing 5).

Sub Parameter2()
Dim strFormel As String
strFormel = "Ausgabe(""Datum:"",#01/05/2006#)"
Debug.Print Eval(strFormel)
End Sub