StartVBA-Kurs › Benutzerdefinierte Funktionen

Benutzerdefinierte Funktionen (UDF) in VBA

Eine benutzerdefinierte Funktion (englisch User Defined Function, kurz UDF) ist eine selbst geschriebene VBA-Funktion, die du anschließend genau wie SUMME oder WENN direkt in einer Zelle eintippst. Sie eignet sich für Berechnungen, die es als eingebaute Funktion nicht gibt – z. B. eigene Rabattlogiken oder Textbausteine.

Eine UDF schreiben

  1. VBA-Editor öffnen mit Alt+F11.
  2. Im Projekt-Explorer: EinfügenModul (UDFs gehören in ein normales Modul, nicht in ein Tabellenblatt-Modul).
  3. Eine Funktion mit Function statt Sub beginnen und mit End Function abschließen.
Function Rabattpreis(Preis As Double, ProzentSatz As Double) As Double Rabattpreis = Preis * (1 - ProzentSatz) End Function

Diese Funktion nimmt einen Preis und einen Prozentsatz entgegen und gibt den reduzierten Preis zurück. Nach dem Speichern der Arbeitsmappe im Format .xlsm steht sie sofort als Formel zur Verfügung:

ABC
1ArtikelPreisRabattpreis
2Notizbuch4,90 €4,17 €
Formel in C2: =Rabattpreis(B2;0,15) – die UDF verhält sich wie jede andere Excel-Funktion.
=Rabattpreis(B2; 0,15) → 4,17 €

Aufruf im Menüband finden

Eigene Funktionen erscheinen im Funktions-Assistenten (Umschalt+F3) standardmäßig unter der Kategorie Benutzerdefiniert, sortiert nach dem Modulnamen.

Profi-Tipp

Kommentiere deine UDF mit '-Zeilen direkt über der Function-Zeile. So findest du auch Monate später schnell wieder, was die Funktion tut und welche Parameter sie erwartet.

Grenzen von UDFs

Moderne Alternative: LAMBDA

Neu ab Excel 365

Für einfachere, wiederverwendbare Berechnungen ganz ohne VBA bietet Excel 365 die Funktion LAMBDA, kombiniert mit dem Namens-Manager. Das obige Beispiel ließe sich auch so als benannte Formel definieren: =LAMBDA(Preis;ProzentSatz; Preis*(1-ProzentSatz)). Der Vorteil: keine Makro-Datei nötig, funktioniert auch in reinen .xlsx-Dateien. Für komplexere Logik mit Schleifen oder externen Zugriffen bleibt VBA aber die richtige Wahl.

Häufige Fehler


Verwandte Themen