Wie wird eine Benutzerdefinierte Funktion angelegt?

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
          a) als Kommentarzeile der Prozedur (s. Abbildung 204) und
          b) im Funktionsassistent zur Erklärung der Funktion (auch wenn nichts aufgezeichnet wurde und die Sub zu Function umbenannt wurde!) (s. Abbildung 206 und Abbildung 207)
Spätere Eingabe von Text als Kommentar in die Prozedur wird nicht mehr in das Dialogfeld übernommen!

 

Abbildung 207, Dialog zur Eingabe der Argumente der neuen Funktion

 

Nicht gefunden, was Sie suchen? Dann geben Sie hier Ihren Suchbegriff ein!

Benutzerdefinierte Suche


More:

Benutzerdefinierte Funktionen mit Argumenten