PDF herunterladen
PDF herunterladen
Auch wenn Excel eine Menge, wahrscheinlich Hunderte, integrierter Funktionen wie SUM, VLOOKUP, LEFT usw. hat, wirst du oft feststellen, dass du eine Funktion brauchst, die es nicht gibt, wenn du Excel für kompliziertere Aufgaben nutzt. Mache dir keine Sorgen, du bist nicht verloren, du musst einfach selbst eine Funktion erstellen.
Vorgehensweise
-
Erstelle ein neues Tabellenblatt oder öffne ein bestehendes, in welchem du deine neu erstellte benutzerdefinierte Funktion nutzen willst.
-
Öffne den Visual Basic Editor , welcher in Microsoft Excel integriert ist, indem du auf Tools > Makro > Visual Basic Editor gehst oder die Tasten Alt + F11 drückst.
-
Füge deinem Arbeitsblatt ein neues Modul hinzu, indem du auf den angezeigten Button klickst. Du kannst eine benutzerdefinierte Funktion im Arbeitsblatt selbst erstellen, ohne ein neues Modul hinzuzufügen, aber dann kannst du die Funktion nicht in anderen Tabellenblättern nutzen.
-
Erstelle den "Header" oder "Prototypen" deiner Funktion. Er muss die folgende Struktur haben: public function "Name deiner Funktion" (param1 As type1, param2 As type2 ) As return Type . Er kann so viele Parameter haben, wie du willst, und der Typ kann einer der grundlegenden Daten- oder Objekttypen von Excel sein. Du kannst dir Parameter als die "Operanden" vorstellen, mit denen deine Funktion arbeitet. Wenn du z.B. SIN(45) angibst, um den Sinus eines 45 Gradwinkels zu berechnen, wird 45 als Parameter genommen. Der Code deiner Funktion wird dann diesen Wert nutzen, um etwas anderes zu berechnen, und das Ergebnis präsentieren.
-
Füge den Code der Funktion hinzu und stelle sicher, dass du 1) die durch die Parameter bereitgestellten Werte verwendest, 2) das Ergebnis dem Namen der Funktion zuweist und 3) die Funktion mit "end function" schließt. In VBA oder einer anderen Sprache programmieren zu lernen kann etwas Zeit und eine detaillierte Anleitung brauchen. Funktionen haben jedoch kleine Code-Blöcke und nutzen nur sehr wenige Merkmale einer Sprache. Die nützlicheren Elemente von VBA sind:
- Der If
-Block, mit welchem du einen Teil des Codes nur dann ausführen kannst, wenn eine Bedingung erfüllt ist. Beispiel:
Public Function Course Result(grade As Integer) As String
If grade >= 5 Then
CourseResult = "Freigegeben"
Else
CourseResult = "Abgelehnt"
End If
End Function
Beachte die Elemente in einem If -Code-Block:IF Bedingung THEN Code ELSE Code END IF
. Das Schlüsselwort Else ist zusammen mit dem zweiten Teil des Codes optional. - Der Do
-Block, welcher einen Teil des Codes ausführt, während
(WHILE) oder bis
(UNTIL) eine Bedingung erfüllt wird. Beispiel:
Public Function IsPrime(value As Integer) As Boolean
Dim i As Integer
i = 2
IsPrime = True
Do
If value / i = Int(value / i) Then
IsPrime = False
End If
i = i + 1
Loop While i < value And IsPrime = True
End Function
Beachte auch hier die Elemente:DO Code LOOP WHILE/UNTIL Bedingung
. Beachte auch die zweite Zeile, in welcher eine Variable "deklariert" wird. Du kannst deinem Code Variablen hinzufügen, damit du sie später nutzen kannst. Variablen fungieren als temporäre Werte im Code. Beachte schließlich die Deklaration der Funktion als BOOLEAN; dies ist ein Datentyp, der nur die Werte TRUE (wahr) und FALSE (falsch) erlaubt. Diese Methode der Bestimmung, ob eine Zahl eine Primzahl ist, ist bei Weitem nicht die optimale, aber wir haben sie so gelassen, damit der Code einfacher zu lesen ist. - Der For
-Block
, welcher einen Teil des Codes eine bestimmte Anzahl von Malen ausführt. Beispiel:
Public Function Factorial(value As Integer) As Long
Dim result As Long
Dim i As Integer
If value = 0 Then
result = 1
ElseIf value = 1 Then
result = 1
Else
result = 1
For i = 1 To value
result = result * i
Next
End If
Factorial = result
End Function
Beachte wieder die Elemente:FOR Variable = untere Grenze TO obere Grenze Code NEXT
. Beachte außerdem das hinzugefügte Element ElseIf im If -Statement, mit welchem du dem Code, der ausgeführt wird, weitere Optionen hinzufügen kannst. Beachte schließlich die Deklaration der Funktion und der Variable "result" als Long . Der Datentyp Long ermöglicht viel größere Werte als Integer .
Unten ist der Code für eine Funktion zu sehen, die kleine Zahlen in Wörter umwandelt.
- Der If
-Block, mit welchem du einen Teil des Codes nur dann ausführen kannst, wenn eine Bedingung erfüllt ist. Beispiel:
-
Gehe zurück in dein Tabellenblatt und nutze die Funktion, indem du die Eingabe einer Zelle mit dem Gleichheitszeichen (=) gefolgt vom Namen deiner Funktion beginnst. Hänge eine sich öffnende Klammer, die mit Kommas getrennten Parameter und eine abschließende sich schließende Klammer an. Beispiel:
=NumberToLetters(A4)
Du kannst die benutzerdefinierte Formel auch nutzen, indem du in der Kategorie "Benutzerdefiniert" im Assistenten zum Einfügen von Formeln nach ihr suchst. Klicke einfach auf den Fx Button links neben der Formelleiste.Diese Parameter können drei Typen haben:- Konstante Werte, die direkt in die Formel in der Zelle eingetippt werden. Zeichenketten müssen in diesem Fall in Anführungszeichen gesetzt werden.
- Zellverweise wie B6 oder Verweise auf einen Bereich wie A1:C3 (der Parameter muss den Datentyp Range haben).
- Andere in der Funktion verschachtelte Funktionen (deine Funktion kann auch in andere Funktionen verschachtelt sein, z.B. =Factorial(MAX(D6:D8)) .
-
Stelle sicher, dass das Ergebnis OK ist, nachdem du die Funktion mehrere Male genutzt hast, um sicherzustellen, dass sie verschiedene Werte für die Parameter richtig handhabt.Werbeanzeige
Tipps
- Wenn du einen Block mit Code in einer Kontrollstruktur wie If, For, Do etc. schreibst, stelle sicher, dass du den Block mit ein paar Leerzeichen oder einem Tab etwas einrückst (die Art der Einrückung bleibt dir überlassen). So ist dein Code einfacher zu verstehen und die Fehlersuche und Verbesserung des Codes wird viel einfacher.
- Wenn du nicht weißt, wie du den Code für eine Funktion schreibst, lies Einfache Makros in Microsoft Excel schreiben .
- Manchmal kann es sein, dass eine Funktion nicht alle Parameter benötigt, um ein Ergebnis zu berechnen. In diesem Fall kannst du das Schlüsselwort Optional vor dem Namen des Parameters im Header der Funktion verwenden. Du kannst die Funktion IsMissing(parameter_name) im Code verwenden, um zu bestimmen, ob dem Parameter ein Wert zugewiesen wurde oder nicht.
- Verwende einen Namen, der nicht bereits als Name für eine Funktion in Excel definiert wurde, sonst kannst du nur eine der Funktionen nutzen.
- Excel hat viele integrierte Funktionen und die meisten Berechnungen können mit deren Nutzung (entweder alleinstehend oder in Kombination) erledigt werden. Stelle sicher, dass du dir die Liste der verfügbaren Funktionen ansiehst, bevor du anfängst, deine eigene zu programmieren. Die Ausführung kann schneller sein, wenn du die integrierten Funktionen nutzt.
Werbeanzeige
Warnungen
- Aufgrund von Sicherheitsmaßnahmen kann es sein, dass einige Leute Makros deaktivieren. Achte darauf, dass du deine Kollegen darüber informierst, dass die Tabelle, die du ihnen schickst, Makros enthält und dass sie diesen vertrauen können und ihre Computer keinen Schaden erleiden.
- Die in diesem Artikel verwendeten Funktionen sind auf keinen Fall die beste Möglichkeit, die jeweiligen Probleme zu lösen. Sie wurden hier nur genutzt, um die Nutzung der Kontrollstrukturen der Sprache zu erklären.
- VBA hat wie jede andere Sprache mehrere andere Kontrollstrukturen außer Do, If und For. Diese wurden hier nur erklärt, um klarzustellen, was im Quellcode einer Funktion gemacht werden kann. Es gibt viele Anleitungen im Internet, in denen du VBA lernen kannst.
Werbeanzeige
Über dieses wikiHow
Diese Seite wurde bisher 17.716 mal abgerufen.
Werbeanzeige