カスタム関数のための JavaScript 専用ランタイム
共有ランタイムを使用しないカスタム関数では、計算のパフォーマンスを最適化するように設計された JavaScript 専用ランタイム が使用されます。
重要
Excel カスタム関数は、次のプラットフォームで使用できます。
- Office on the web
- Windows での Office
- Microsoft 365 サブスクリプション
- retail 永久 Office 2016 以降
- ボリューム ライセンスの永続的なOffice 2021以降
- Office on Mac
Excel カスタム関数は現在、次ではサポートされていません。
- Office on iPad
- Windows での Office 2019 以前のボリューム ライセンスの永続的バージョン
注:
共有ランタイムを使用しない特定の理由がない限り、 共有ランタイムでカスタム関数を使用することをお勧めします。 共有ランタイムを使用すると、条件が満たされた場合はアドインで WebView2 (Microsoft Edge Chromium ベース) が使用され、それ以外の場合、アドインでは Windows または Microsoft 365 のバージョンに関係なく Trident (インターネット エクスプローラー 11) が使用されることに注意してください。 WebView2 の条件の詳細については、「Office アドインで使用されるブラウザーと Webview コントロール」を参照してください。ランタイムの詳細については、「Office アドインとランタイムのランタイム」を参照してください。
この JavaScript 専用ランタイムは、カスタム関数と作業ウィンドウ (別のランタイムで実行される) で使用できる名前空間内 OfficeRuntime
の API にアクセスして、データを格納します。
外部データを要求する
カスタム関数内では、Fetch などの API や、サーバーとやり取りする HTTP 要求を発行する標準 Web API である XmlHttpRequest (XHR) を使用して、外部データを要求できます。
カスタム関数では、XmlHttpRequests を作成するときに追加のセキュリティ対策を使用する必要があることに注意してください。 同じ配信元ポリシー と単純な CORS が必要です。
単純な CORS 実装では Cookie を使用できず、単純なメソッド (GET、HEAD、POST) のみがサポートされます。 単純な CORS はフィールド名Accept
、 Accept-Language
、Content-Language
の簡単なヘッダーを受け入れます。 コンテンツ タイプapplication/x-www-form-urlencoded
text/plain
が Content-Type
、、または multipart/form-data
である場合は、単純な CORS でヘッダーを使用することもできます。
データの格納とアクセス
共有ランタイムを使用しないカスタム関数内では、 OfficeRuntime.storage オブジェクトを使用してデータを格納およびアクセスできます。 オブジェクトは Storage
、JavaScript 専用ランタイムを使用するカスタム関数では使用できない localStorage の代替手段を提供する、永続的で暗号化されていないキー値ストレージ システムです。 オブジェクトは Storage
、ドメインごとに 10 MB のデータを提供します。 ドメインは、複数のアドインで共有できます。
オブジェクトは Storage
共有ストレージ ソリューションであり、アドインの複数の部分が同じデータにアクセスできることを意味します。 たとえば、ユーザー認証のトークンは、カスタム関数 (JavaScript 専用ランタイムを使用) と作業ウィンドウ (完全な Webview ランタイムを使用) の両方でアクセスできるため、オブジェクトに格納される Storage
場合があります。 同様に、2 つのアドインが同じドメイン (、 などwww.contoso.com/addin1
www.contoso.com/addin2
) を共有する場合、オブジェクトを介して情報を前後にStorage
共有することもできます。 サブドメインが異なるアドインには、 のインスタンスStorage
が異なっていることに注意してください (例: 、 subdomain.contoso.com/addin1
differentsubdomain.contoso.com/addin2
)。
オブジェクトは Storage
共有の場所にできるため、キーと値のペアをオーバーライドできることを認識することが重要です。
オブジェクトでは、次のメソッドを Storage
使用できます。
getItem
getItems
setItem
setItems
removeItem
removeItems
getKeys
注:
すべての情報 (など clear
) をクリアする方法はありません。 代わりに、一度に複数のエントリを削除できる removeItems
を使用してください。
OfficeRuntime.storage の例
次のコード サンプルでは、 メソッドを OfficeRuntime.storage.setItem
呼び出して、キーと値を に storage
設定します。
function StoreValue(key, value) {
return OfficeRuntime.storage.setItem(key, value).then(function (result) {
return "Success: Item with key '" + key + "' saved to storage.";
}, function (error) {
return "Error: Unable to save item with key '" + key + "' to storage. " + error;
});
}
次の手順
カスタム関数をデバッグする方法について説明します。
関連項目
Office Add-ins
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示