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