Startseite

Benutzerdefinierte Funktionen

Eine benutzerdefinierte Funktion läßt sich am besten mit den in Excel vorgegebenen Funktionen vergleichen, sind auch das Selbe, nur eben vom Nutzer geschrieben. Dem entsprechend werden sie auch über den Funktions-Assistent aufgerufen, wo man sie unter Benutzerdefiniert findet. Die Funktionen liegen im Hintergrund der Excelzelle und führen dort die vorgegebene(n) Aktion(en) aus, wenn Inhalte in die Tabelle geschrieben werden.
Im Gegensatz zu den reinen Zellformeln, werden die Befehle in englischer Sprache (Basic) eingegeben. Auch werden sie nicht in die Zelle geschrieben, sondern im Visual-Basic Editor erzeugt.

Editor aufrufen:

Der Visual-Basic Editor:

Im Visual-Basic Editor kann nun der Quelltext eingegeben werden. Im Prinzip ist das nichts anderes als die Befehle, die man auch per Zellformel eingeben kann. So hat man aber den Vorteil, daß die oft unübersichtlichen Formeln nur einmal eingegeben werden müssen, in der Tabelle selbst erscheint dann nur die Funktion.

Quellcode (Beispiel 1):

Function diff(einnahmen, ausgaben)
diff = einnahmen - ausgaben
End Function

Erläuterung:

Der einleitende Befehl lautet 'Function', danach kommt der Name der Funktion, hier sollte man darauf achten, daß man keinen Namen aussucht, der in irgend einer Form in Excel reserviert ist. Ich löse das, indem ich mich auf Abkürzungen beschränke, also nicht Summe sondern summ. Ansonsten ist dieser Name wahlfrei. In die Klammer werden dann alle Spaltenüberschriften eingetragen, die für die geplante Berechnung relevant sind. Sie werden durch Kommas getrennt.
Danach erfolgt die Eingabe der gewünschten Formel(n). Wobei Für die Ergebnisvariable der Funktionsname verwendet wird, für die Berechnung die Namen der Spaltenüberschriften. Im vorliegenden Beispiel wird der Inhalt der Spalte 'Ausgaben' vom Inhalt in der Spalte 'Einnahmen' abgezogen. Das Ergebnis erscheint in der Zelle, in der Funktion aktiviert wird. - Dazu kommen wir später.

Beispiel 2:

Am Beispiel einer normalen wenn-Abfrage möchte ich versuchen, die Unterschiede zwischen Zellformeln und Funktionen zu verdeutlichen. Die folgende Zellformel:

=WENN((B2<A2);(A2)-(B2);(A2)*(B2))

Sieht als Funktion so aus:
Function diff2(einnahmen, ausgaben)
If ausgaben < einnahmen Then
diff2 = einnahmen - ausgaben
Else: diff2 = einnahmen * ausgaben
End If
End Function
Das ist zwar auch nicht kürzer, aber sicher schon etwas übersichtlicher. Den eigentlichen Vorteil erkennt man aber, wenn man sieht, was noch in der Ergebniszelle steht:
=diff2(A2;B2)
Man kann sich leicht vorstellen, daß das die Übersichtlichkeit im Tabellenblatt fördert. Außerdem sind wesentlich umfangreichere Formeln möglich, als das vorgestellte Beispiel.

Funktion aufrufen:

Zum Aufrufen der Funktion geht man wieder auf das Tabellenblatt, dort wird die gewünschte Ergebniszelle selektiert.
Danach wird der Schalter für den Aufruf von Funktionen betätigt. (s. Bild, roter Kreis)
Zunächst geht man links unten auf Benutzerdefiniert. Danach wählt man auf der rechten Seite die gewünschte Funktion aus. Danach öffnet sich der wohlbekannte Funtionsassistent.
Der Rest erklärt sich fast von alleine:
Zellen mit den Berechnungsinhalten selektieren 'Ende' drücken - fertig.