Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie eine freigegebene Runtime, um globale Daten zwischen den benutzerdefinierten Funktionen und dem Aufgabenbereich Ihres Excel-Add-Ins freizugeben. In diesem Tutorial fügen Sie Funktionen und Aufgabenbereichssteuerelemente hinzu, die dieselbe Variable lesen und aktualisieren.
Voraussetzungen
Schließen Sie das Tutorial zu benutzerdefinierten Excel-Funktionen ab, und verwenden Sie das von Ihnen erstellte Add-In. Das Projekt muss die benutzerdefinierten Excel-Funktionen mit dem Projekttyp Shared Runtime und dem JavaScript-Skripttyp verwenden.
Freigeben des Status zwischen benutzerdefinierten Funktionen und dem Code des Aufgabenbereichs
Erstellen benutzerdefinierter Funktionen zum Abrufen oder Speichern des freigegebenen Status
Öffnen Sie in Visual Studio Code src/functions/functions.js.
Fügen Sie am Anfang der Datei den folgenden Code hinzu. Dieser Code initialisiert eine globale Variable namens
sharedState.window.sharedState = "empty";Fügen Sie den folgenden Code hinzu, um eine benutzerdefinierte Funktion zu erstellen, die Werte in
sharedStatespeichert./** * Saves a string value to shared state with the task pane * @customfunction STOREVALUE * @param {string} value String to write to shared state with task pane. * @return {string} A success value */ function storeValue(sharedValue) { window.sharedState = sharedValue; return "value stored"; }Fügen Sie den folgenden Code hinzu, um eine benutzerdefinierte Funktion zu erstellen, die den aktuellen Wert von
sharedStateabruft./** * Gets a string value from shared state with the task pane * @customfunction GETVALUE * @returns {string} String value of the shared state with task pane. */ function getValue() { return window.sharedState; }Speichern Sie die Datei.
Erstellen von Aufgabenbereich-Steuerelementen für die Interaktion mit globalen Daten
Öffnen Sie src/taskpane/taskpane.html.
Fügen Sie nach dem schließenden
</main>Element den folgenden HTML-Code hinzu, um Steuerelemente zu erstellen, die globale Daten speichern und abrufen.<ol> <li> Enter a value to send to the custom function and select <strong>Store</strong>. </li> <li> Enter <strong>=CONTOSO.GETVALUE()</strong> into a cell to retrieve it. </li> <li> To send data to the task pane, in a cell, enter <strong>=CONTOSO.STOREVALUE("new value")</strong> </li> <li>Select <strong>Get</strong> to display the value in the task pane.</li> </ol> <p>Store new value to shared state</p> <div> <input type="text" id="storeBox" /> <button onclick="storeSharedValue()">Store</button> </div> <p>Get shared state value</p> <div> <input type="text" id="getBox" /> <button onclick="getSharedValue()">Get</button> </div>Fügen Sie vor dem schließenden
</body>Element das folgende Skript hinzu, um die Schaltflächenereignisse Store und Get zu behandeln.<script> function storeSharedValue() { let sharedValue = document.getElementById('storeBox').value; window.sharedState = sharedValue; } function getSharedValue() { document.getElementById('getBox').value = window.sharedState; } </script>Speichern Sie die Datei.
Erstellen Sie das Projekt.
npm run build
Versuchen Sie, Daten zwischen den benutzerdefinierten Funktionen und dem Aufgabenbereich freizugeben.
- Starten Sie das Projekt.
npm run start
- Geben Sie im Aufgabenbereich einen Wert ein, und wählen Sie dann Speichern aus.
- Geben Sie in einer Excel-Zelle ein
=CONTOSO.GETVALUE(), um denselben Wert abzurufen. - Geben Sie in einer anderen Zelle ein
=CONTOSO.STOREVALUE("new value"), um den freigegebenen Wert zu aktualisieren. - Wählen Sie im Aufgabenbereich Abrufen aus, um den aktualisierten Wert anzuzeigen.
Hinweis
Eine freigegebene Runtime ermöglicht auch benutzerdefinierten Funktionen das Aufrufen einiger Office-APIs. Weitere Informationen finden Sie unter Aufrufen von Microsoft Excel-APIs aus einer benutzerdefinierten Funktion.
Wenn Sie bereit sind, den Entwicklungsserver zu beenden und das Add-In zu deinstallieren, führen Sie den folgenden Befehl aus.
npm run stop
Siehe auch
Office Add-ins