次の方法で共有


カスタム関数のための 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 (Internet Explorer 11) を使用します。 WebView2 の条件の詳細については、「 Office アドインで使用されるブラウザーと Webview コントロール」を参照してください。ランタイムの詳細については、「 Office アドインのランタイム」を参照してください。

この JavaScript 専用ランタイムは、カスタム関数と作業ウィンドウ (別のランタイムで実行される) がデータを格納するために使用できる、 OfficeRuntime 名前空間の API へのアクセスを提供します。

外部データを要求する

カスタム関数内では、Fetch などの API や、サーバーとやり取りする HTTP 要求を発行する標準 Web API である XmlHttpRequest (XHR) を使用して、外部データを要求できます。

カスタム関数では、XmlHttpRequests を作成するときに追加のセキュリティ対策を使用する必要があることに注意してください。 同じ配信元ポリシー と単純な CORS が必要です。

単純な CORS 実装では Cookie を使用できず、単純なメソッド (GET、HEAD、POST) のみがサポートされます。 単純な CORS はフィールド名AcceptAccept-LanguageContent-Languageの簡単なヘッダーを受け入れます。 コンテンツ タイプがapplication/x-www-form-urlencodedtext/plain、またはmultipart/form-dataである場合は、単純な CORS で Content-Type ヘッダーを使用することもできます。

データの格納とアクセス

共有ランタイムを使用しないカスタム関数内では、 OfficeRuntime.storage オブジェクトを使用してデータを格納およびアクセスできます。 Storage オブジェクトは、JavaScript 専用ランタイムを使用するカスタム関数では使用できない localStorage の代替手段を提供する、永続的で暗号化されていないキー値ストレージ システムです。 Storage オブジェクトは、ドメインごとに 10 MB のデータを提供します。 ドメインは、複数のアドインで共有できます。

Storage オブジェクトは共有ストレージ ソリューションであり、アドインの複数の部分が同じデータにアクセスできることを意味します。 たとえば、ユーザー認証のトークンは、カスタム関数 (JavaScript 専用ランタイムを使用) と作業ウィンドウ (完全な Webview ランタイムを使用) の両方でアクセスできるため、 Storage オブジェクトに格納できます。 同様に、2 つのアドインが同じドメイン ( www.contoso.com/addin1www.contoso.com/addin2 など) を共有する場合、 Storage オブジェクトを介して情報を前後に共有することもできます。 サブドメインが異なるアドインには、 Storage のインスタンスが異なっていることに注意してください (たとえば、 subdomain.contoso.com/addin1differentsubdomain.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;
  });
}

次の手順

カスタム関数をデバッグする方法について説明します。

関連項目