Benutzerdefinierte Funktionen werden in der Programmiersprache VBA (Visual Basic for Applications) erstellt.
Wir wollen lernen, Benutzerdefinierte Funktionen zu erzeugen, ohne große Programmierkenntnisse zu besitzen.
Soweit möglich wollen wir den Makro-Recorder dazu benutzen.
Aber: Der Makro-Recorder zeichnet Aktionen auf, die der Anwender mit irgendwelchen Objekten vornimmt. Er erstellt sog. Sub-Prozeduren.
Wir benötigen so was Ähnliches, sog. Function-Prozeduren. Solche Prozeduren führen eine Berechnung durch und liefern das Ergebnis zurück.
Mit Sub-Prozeduren kann man eine Anwendung steuern, also Objekte (z.B. eine EXCEL-Tabelle) verändern, Function-Prozeduren dagegen liefern einen Wert zurück.
Function-Prozeduren spielen eine wichtige Rolle in der Programmierung; sie können aber genauso gut in einem EXCEL-Arbeitsblatt benutzt werden, und auf diesen Aspekt wollen wir uns in diesem Workshop konzentrieren.
Beispiel: Wir wollen eine Function EUROFAKTOR() entwickeln, die zur Umrechnung von DM in EUR und umgekehrt benutzt werden kann.
Makro Aufzeichnung starten. Es öffnet sich das Dialogfeld Makro
Aufzeichnen.
Geben Sie folgenden erläuternden Text ein: „Diese
Funktion liefert den Umrechnungsfaktor von DM zu EURO!“ (vgl. Abbildung 211)
Abbildung 211, Makro-Aufzeichnung starten
Wählen Sie o.k. und beenden dann die Aufzeichnung sofort wieder.
Öffnen Sie mit Alt+F11 den Visual Basic
Editor.
EXCEL hat einen neuen Modul in Ihr Projekt eingefügt. In
diesem Modul befindet sich das Ergebnis der Aufzeichnung: Ein leerer
Prozedurrumpf einer Sub-Prozedur, die lediglich Kommentare enthält.
Abbildung 212, Prozedurrumpf erstellt vom Makro-Recorder
In diesem Prozedurrumpf ändern wir das Schlüsselwort „Sub“ zu „Function“. „End Sub“ wird automatisch zu „End Function“.
Wir fügen die Codezeile ein: „Eurofaktor =1.95538“.
Achtung:
Der Dezimaltrenner ist ein Punkt! (Weil wir uns mit Visual Basic
sozusagen im Angelsächsischen Kulturkreis bewegen!)
Abbildung 213, Die komplette Function-Prozedur "Eurofaktor"
Das war schon alles! EXCEL hat die neue Funktion in die Kategorie „Benutzerdefiniert“ aufgenommen. Wenn Sie den Funktions-Assistenten aufrufen, finden Sie die Funktion aufgelistet (vgl. Abbildung 214 und Abbildung 215).
Sie können diese neue Funktion von nun an in einer EXCEL-Tabelle
benutzen.
Geben Sie in eine Zelle die Formel ein:
= Eurofaktor()
Die
Zelle zeigt das Ergebnis: 1,95583.
(Beachten Sie den Dezimaltrenner, es ist
das Komma, wir befinden uns wieder auf deutschem Boden!)
Abbildung 214, Der Funktions-Assistent kennt die neue Funktion bereits
Achtung: Text, der in das Dialogfeld „Makro
Aufzeichnen“ eingegeben wird (s. Abbildung 211),
erscheint |
Abbildung 215, Dialog zur Eingabe der Argumente der neuen Funktion
Benutzerdefinierte Funktionen mit Argumenten