DatenbankManufaktur

Anwendungen so individuell wie Ihr Unternehmen   –   Office- und VBA-Erfahrung seit 1995

Benutzerdefinierte Funktionen (UDF) in Excel

Eine benutzerdefinierte Funktion, kurz UDF (User Defined Function), arbeitet in Excel wie eine Tabellenblattfunktion. Sie kann über den Funktions-Assistenten aufgerufen oder direkt in eine Zelle eingegeben werden. Name, Parameter und Rückgabewert werden aber vom Benutzer (also Ihnen) im VBA-Editor angelegt. Dort wird auch der eigentliche Ablauf der Funktion festgelegt.

Beispiel

Um den Umfang eines Kreises leichter auszurechen, soll die Formel 2*r*Pi als Formel hinterlegt werden. Öffnen Sie den Visual-Basic-Editor (VBE) und fügen Sie ein neues Modul ein. Dort legen Sie die neue Funktion an:

   Public Function Kreisumfang(Radius As Double) As Double

   End Function

Die neue Funktion heißt Kreisumfang, erwartet als Parameter den Radius des Kreises als Zahl und gibt eine Zahl zurück. Damit der Umfang auch ausgerechnet wird, muss die Verarbeitung noch festgelegt werden:

      Kreisumfang = Radius * 2 * WorksheetFunction.Pi

Der Rückgabewert Kreisumfang wird erst mit zwei und dann mit Pi multipliziert. Für Pi gibt es schon die eingebaute Excel-Tabellenblattfunktion, die den Wert bis auf 14 Stellen hinter dem Komma genau zurückgibt.

Benutzerdefinierte Funktion - Der CodeZum Vergrößern auf das Bild klicken

Zum Testen kann die Funktion im Direktfenster aufgerufen werden.

Benutzerdefinierte Funktion - Aufruf im DirektfensterZum Vergrößern auf das Bild klicken

Im Tabellenblatt wird die neue Funktion z.B. in der Zelle B1 mit =Kreisumfang(A1) aufgerufen. Steht in der Zelle A1 die Zahl 3, rechnet die Funktion 3 * 2 * 3,14159265358979 = 18,8495559215387 und diese Zahl erscheint (gerundet) in der Zelle B1.

Benutzerdefinierte Funktion - Aufruf im TabellenblattZum Vergrößern auf das Bild klicken

Es sind natürlich auch mehrere Parameter und kompliziertere Logiken innerhalb der Funktion möglich. Hier finden Sie ein paar Beispiele. Die UDF funktionieren natürlich auch in Excel:mac.

Wenn Ihnen das alles zu kompliziert ist, Sie viele Funktion an mehrere Leute verteilen wollen oder noch Größeres vorhaben, dann kann ich Sie dabei professionell unterstützen. Nehmen Sie einfach Kontakt mit mir auf.