Lösungen

Die Eval-Funktion richtig nutzen

Zusammenfassung

Die Eval-Funktion ist sehr flexibel einzusetzen. Sie können Sie nicht nur im VBA-Code nutzen, sondern beispielsweise auch als Funktion für Steuerelemente in Formularen und Berichten. Denkbar ist daher auch, die auszuwertende Formel aus einer Datenbanktabelle zu lesen. Damit ließen sich auch komplexere Berechnungen in Berichten und Formularen ausführen, ohne VBA zu bemühen. Ein Sicherheitsrisiko stellt die Eval-Funktion kaum dar, weil potenziell gefährliche VBA-Anweisung wie kill zum Löschen von Dateien als Prozeduren implementiert sind und daher nicht in einer Funktion aufgerufen werden können.

Inhalt und Aufbau der Formel

Die Formel muss syntaktisch korrekt sein. So müssen Klammern korrekt verschachtelt sein und die in VBA verfügbaren Rechenzeichen verwendet werden. Dezimalzahlen müssen mit Dezimalpunkt anstelle des im deutschen üblichen Kommas eingegeben werden.
Dezimalkommata dürfen verwendet werden, wenn solche Zahlen als Zeichenketten innerhalb der Formel stehen. Allerdings sind sie in Anführungszeichen zu setzen. Dann wandelt die Eval-Funktion zunächst die Zeichenketten um und ersetzt dabei gegebenenfalls das Komma durch einen Dezimalpunkt. Danach wird erst die Formel berechnet. Möchten Sie beispielsweise die Formel 10 x 0,5 berechnen, könnten Sie dazu eine der beiden folgenden Zeichenketten an die Eval-Funktion übergeben:
10 x 0.5
10 x"0,5"
Beide führen zum korrekten Ergebnis.