Erstellen von benutzerdefinierten Funktionen in Excel

Mithilfe benutzerdefinierter Funktionen können Entwickler Excel neue Funktionen hinzufügen, indem sie diese in JavaScript als Teil eines Add-Ins definieren. Benutzer können auf benutzerdefinierte Funktionen in Excel auf die gleiche Weise zugreifen wie auf die nativen Funktionen in Excel (beispielsweise SUM()).

Hinweis

Benutzerdefinierte Funktion ist ein allgemeiner Begriff, der mit einer benutzerdefinierten Funktion austauschbar ist. Beide Begriffe gelten für VBA-, COM- und Office.js-Add-Ins. In der Dokumentation zu Office-Add-Ins wird der Begriff benutzerdefinierte Funktion verwendet, wenn auf benutzerdefinierte Funktionen verwiesen wird, die Office-JavaScript-APIs verwenden.

Wichtig

Beachten Sie, dass benutzerdefinierte Excel-Funktionen auf den folgenden Plattformen verfügbar sind.

  • Office unter Windows
    • Microsoft 365-Abonnement
    • retail unbefristete Office 2016 und höher
  • Office für Mac
  • Office im Web

Benutzerdefinierte Excel-Funktionen werden derzeit in den folgenden Artikeln nicht unterstützt:

  • Office auf dem iPad
  • Volumenlizenzierte unbefristete Versionen von Office 2019 oder früheren Versionen

Das folgende animierte Bild zeigt Ihre Arbeitsmappe und ruft eine Funktion auf, die Sie mit JavaScript oder Typescript erstellt haben. In diesem Beispiel berechnet die benutzerdefinierte Funktion =MYFUNCTION.SPHEREVOLUME das Volumen der Sphäre.

Animiertes Bild, das einen Endbenutzer zeigt, der die benutzerdefinierte Funktion MYFUNCTION.SPHEREVOLUME in eine Zelle eines Excel-Arbeitsblatts einfügt.

Der folgende Code definiert die benutzerdefinierte Funktion =MYFUNCTION.SPHEREVOLUME.

/**
 * Returns the volume of a sphere.
 * @customfunction
 * @param {number} radius
 */
function sphereVolume(radius) {
  return Math.pow(radius, 3) * 4 * Math.PI / 3;
}

Wie eine benutzerdefinierte Funktion im Code definiert wird

Wenn Sie den Yeoman-Generator für Office-Add-Ins zum Erstellen eines Excel-Add-In-Projekts mit benutzerdefinierten Funktionen verwenden, erstellt er Dateien, die Ihre Funktionen und Ihren Aufgabenbereich steuern. Wir konzentrieren uns auf die Dateien, die für benutzerdefinierte Funktionen wichtig sind.

Datei Dateiformat Beschreibung
./src/functions/functions.js
oder
./src/functions/functions.ts
JavaScript
oder
TypeScript
Enthält den Code, der benutzerdefinierte Funktionen definiert.
./src/functions/functions.html HTML Stellt einen <script>-Verweis auf die JavaScript-Datei bereit, die benutzerdefinierte Funktionen definiert.
./manifest.xml XML Gibt den Speicherort für mehrere Dateien an, die Ihre benutzerdefinierten Funktionen verwenden, z. B. für JavaScript-, JSON- und HTML-Dateien. Außerdem listet sie die Speicherorte von Aufgabenbereichsdateien und Befehlsdateien auf und gibt an, welche Laufzeit (Runtime) Ihre benutzerdefinierten Funktionen verwenden sollten.

Tipp

Der Yeoman-Generator für Office-Add-Ins bietet mehrere Projekte für benutzerdefinierte Excel-Funktionen . Es wird empfohlen, den Projekttyp Excel Custom Functions mit einer freigegebenen Runtime und den Skripttyp JavaScript auszuwählen.

Skriptdatei

Die Skriptdatei (./src/functions/functions.js oder ./src/functions/functions.ts) enthält den Code, der benutzerdefinierte Funktionen und Kommentare definiert, die die Funktion definieren.

Der folgende Code definiert die benutzerdefinierte Funktion add. Die Codekommentare werden verwendet, um eine JSON-Metadatendatei zu generieren, die die benutzerdefinierte Funktion für Excel beschreibt. Der erforderliche @customfunction-Kommentar wird zuerst deklariert, um anzugeben, dass es sich um eine benutzerdefinierte Funktion handelt. Als Nächstes werden zwei Parameter deklariert, first und second, gefolgt von deren description-Eigenschaften. Und schließlich gibt es eine returns-Beschreibung. Weitere Informationen dazu, welche Kommentare für Ihre benutzerdefinierte Funktion erforderlich sind, finden Sie unter Automatisches Erstellen von JSON-Metadaten für benutzerdefinierte Funktionen.

/**
 * Adds two numbers.
 * @customfunction 
 * @param first First number.
 * @param second Second number.
 * @returns The sum of the two numbers.
 */

function add(first, second){
  return first + second;
}

Manifestdatei

Die XML-Manifestdatei für ein Add-In zum Definieren von benutzerdefinierten Funktionen (./manifest.xml in dem vom Yeoman-Generator für Office-Add-Ins erstellten Projekt) führt mehrere Aktionen aus.

  • Sie definiert den Namespace für Ihre benutzerdefinierten Funktionen. Ein Namespace stellt sich Ihren benutzerdefinierten Funktionen voran und hilft Kunden so, Ihre Funktionen als Teil Ihres Add-Ins zu identifizieren.
  • Verwendet <ExtensionPoint> - und <Resources-Elemente> , die für ein benutzerdefiniertes Funktionsmanifest eindeutig sind. Diese Elemente enthalten die Informationen zu den Speicherorten der JavaScript-, JSON- und HTML-Dateien.
  • Sie gibt an, welche Laufzeit für Ihre benutzerdefinierte Funktion verwendet werden soll. Wir empfehlen, immer eine freigegebene Laufzeit zu verwenden (außer wenn Sie aus einem bestimmten Grund eine andere Laufzeit benötigen), weil eine freigegebene Laufzeit die Freigabe von Daten zwischen Funktionen und dem Aufgabenbereich ermöglicht.

Ein vollständiges funktionierendes Manifest aus einem Beispiel-Add-In finden Sie im Manifest in einem unserer GitHub-Repositorys für Office-Add-In-Beispiele.

Tipp

Wenn Sie Ihr Add-In in mehreren Umgebungen testen (z. B. in Entwicklung, Staging, Demo usw.), empfehlen wir Ihnen, für jede Umgebung eine andere XML-Manifestdatei zu verwalten. In jeder Manifestdatei haben Sie folgende Möglichkeiten:

  • Geben Sie die URLs an, die der Umgebung entsprechen.
  • Passen Sie Metadatenwerte wie DisplayName und Bezeichnungen in Resources an, um die Umgebung anzugeben, damit Endbenutzer die entsprechende Umgebung eines quergeladenen Add-Ins identifizieren können.
  • Passen Sie die benutzerdefinierten Funktionen namespace an, um die Umgebung anzugeben, wenn Ihr Add-In benutzerdefinierte Funktionen definiert.

Durch Befolgen dieser Anleitung optimieren Sie den Testprozess und vermeiden Probleme, die andernfalls auftreten würden, wenn ein Add-In für mehrere Umgebungen gleichzeitig quergeladen wird.

Gemeinsame Dokumenterstellung

Excel im Web und auf Windows, die mit einem Microsoft 365-Abonnement verbunden sind, ermöglichen Endbenutzern die gemeinsame Dokumenterstellung in Excel. Wenn die Arbeitsmappe eines Endbenutzers eine benutzerdefinierte Funktion verwendet, wird der mitverfassende Kollege des Endbenutzers aufgefordert, das entsprechende Add-In für die benutzerdefinierte Funktion zu laden. Sobald beide Benutzer das Add-In geladen haben, gibt die benutzerdefinierte Funktion die Ergebnisse über die gemeinsame Dokumenterstellung frei.

Weitere Informationen zur gemeinsamen Dokumenterstellung finden Sie unter Informationen zur gemeinsamen Dokumenterstellung in Excel.

Nächste Schritte

Möchten Sie benutzerdefinierte Funktionen ausprobieren? Schauen Sie sich die einfache Schnellstartanleitung für benutzerdefinierte Funktionen oder das ausführlichere Tutorial für benutzerdefinierte Funktionen an, falls Sie es noch nicht getan haben.

Eine weitere einfache Möglichkeit, benutzerdefinierte Funktionen auszuprobieren, ist die Verwendung von Script Lab, einem Add-In, mit dem Sie mit benutzerdefinierten Funktionen direkt in Excel experimentieren können. Sie können ausprobieren, eigene benutzerdefinierte Funktion zu erstellen, oder mit den bereitgestellten Beispielen experimentieren.

Siehe auch