23.5 Eigene Funktionen in VBA
Mit den über 300 Tabellenfunktionen, die Excel mitbringt, müssen Sie sich keineswegs zufrieden geben. Wenn sich bei Ihnen spezielle Berechnungen häufig wiederholen, können Sie sich mit Hilfe von VBA auch eigene Funktionen zusammenbauen, die Ihnen aus bestimmten Ausgangsdaten einen berechneten Wert zurückgeben.
23.5.1 Per Funktion von DM zu Euro und zurück
In diesem Abschnitt werden zwei sofort einsetzbare benutzerdefinierte Funktionen für eine schnelle Umrechnung von DEM in Euro und umgekehrt geliefert. Für die Umrechnung von DEM-Beträgen in Euro-Beträge und umgekehrt drängt sich die Nutzung solcher Funktionen geradezu auf. Beide sind nicht so mächtig, wie die EUROCONVERT-Funktion, aber einfacher zu handhaben, weil als Argument nur der Betrag eingegeben werden muss.
Die eine Funktion soll Ihnen automatisch aus dem eingegebenen DEM-Betrag den Euro-Betrag liefern, und zwar auf zwei Stellen gerundet. Die zweite Funktion rechnet aus einem Euro-Betrag zurück auf den DEM-Betrag, ebenfalls mit der Rundung auf zwei Stellen.
Umrechnungsfunktion erstellen
1 Damit Sie die beiden Funktionen in allen Arbeitsmappen anwenden können, ist es sinnvoll, sie in der schon angesprochenen persönlichen Arbeitsmappe Personal.xls einzutragen. (Falls die Mappe noch nicht existiert, sollten Sie irgendein kleines Makro dafür aufzeichnen.)2 Wechseln Sie mit + in die VBA-Umgebung und wählen Sie in der Ansicht Projekt den Eintrag VBAProjekt(Personal.xlsm) aus. Wenn Sie die neuen Funktionen in einem eigenen Modul sammeln wollen, wählen Sie Einfügen/Modul, ansonsten können Sie auch ein bereits bestehendes Modul per Doppelklick im Projekt-Explorer öffnen.
3 Wählen Sie dann Einfügen/Prozedur und tragen Sie den Namen der ersten Funktion ein. Wählen Sie unter Typ Function aus. Im Modulfenster erscheint ein Skelett für die Funktion.Public Function EURO() End Function4 Fügen Sie in die Klammer hinter dem Funktionsnamen den Namen des Arguments ein, das an die Funktion übergeben werden soll. In diesem Fall den DEM-Betrag, der umgewandelt werden soll.5 Nun schreiben Sie zwischen die beiden Zeilen die Anweisung, wie der DEM-Betrag in Euro umgerechnet werden soll. Der DEM-Betrag muss durch den fixierten Kurs dividiert werden.
6 Anschließend wird das Ergebnis kaufmännisch gerundet, also auf zwei Nachkommastellen. Dazu wird die eingebaute VBA-Funktion ROUND benutzt. Die Funktion sieht dann insgesamt so aus:
Public Function EURO(dem_betrag) EURO = ROUND(dem_betrag/1.95583, 2) End Function
Public Function DEM(euro_betrag) DEM = ROUND(euro_betrag * 1.95583, 2) End Function
Um eine der Funktionen in einem beliebigen Tabellenblatt einzusetzen, benutzen Sie in der betreffenden Zelle die Schaltfläche Funktion einfügen. Wählen Sie unter Kategorie auswählen den Eintrag Benutzerdefiniert und dann die gewünschte Funktion. Geben Sie den umzurechnenden DEM- bzw. Euro-Betrag oder einen Bezug auf die Zelle ein, die den Betrag enthält, und bestätigen Sie.
Wundern Sie sich nicht, wenn Sie einen Betrag von DEM in Euro und dann wie der zurück umrechnen, dass das Ergebnis in einigen Fällen um einen Pfennig vom Ursprungsbetrag abweichen kann. Solche Differenzen sind aufgrund der Rundungen unvermeidlich. Es ist in der Regel aber sinnvoll, mit gerundeten Beträgen weiterzuarbeiten, anstatt mit den exakten Beträgen, die aufgrund der Division durch den Umrechnungskurs häufig viele Nachkommastellen enthalten.
Beachten Sie, dass Excel bei benutzerdefinierten Funktionen, die nicht in der aktiven Arbeitsmappe gespeichert sind, erwartet, dass der Name der Mappe, die die Funktion enthält, vor den Namen der Funktion gesetzt wird, also hier Personal.xlsm!EURO statt EURO. Wenn Sie die Funktionen in die aktive Arbeitsmappe kopieren, müssen Sie dagegen nur den Funktionsnamen angeben, also EURO oder DEM.
23.5.2 Sicherheit für Makros
In Abschnitt 2.8 ist bereits beschrieben worden, wie über die Einstellungen im Vertrauensstellungscenter die unerwünschte Ausführung von Makros verhindert werden kann. Innerhalb des VBA-Editorfensters steht der Befehl Extras/Digitale Signatur zur Verfügung, um ein Makro zu signieren, falls solche Signaturen eingerichtet sind. Benutzen Sie im Dialog die Schaltfläche Wählen. Dann kann eines der vorhandenen Zertifikate ausgewählt und zugeordnet werden.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.