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 203)

Abbildung 203, 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 204, 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 205, 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 206 und Abbildung 207).
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 206, Der Funktions-Assistent kennt die neue Funktion bereits
|
|
Achtung: Text, der in das Dialogfeld „Makro
Aufzeichnen“ eingegeben wird (s. Abbildung 203),
erscheint |

Abbildung 207, Dialog zur Eingabe der Argumente der neuen Funktion
Nicht gefunden, was Sie suchen? Dann geben Sie hier Ihren Suchbegriff ein!
Benutzerdefinierte Funktionen mit Argumenten