次の方法で共有


JavaScript ユーザー定義関数の概要

JavaScript ユーザー定義関数 (UDF) は、SharePoint の Excel Services で新しく追加されました。 この記事では、Excel Services での作業の基本的な情報など、JavaScript UDF の概要を説明します。

注:

Office アドイン用の JavaScript カスタム関数に関する情報については、「 Excel でカスタム関数を作成する」を参照してください。

UDF とは

ユーザー定義関数 (UDF) は、Excel の既定の関数だけで足りない場合に、ユーザーが自分で作成して Excel の使用可能な関数のリストに追加することができます。

Excel Services ではマネージ コードを使用して UDF を作成することができるため、既存の Excel Services UDF を使用した経験があれば、JavaScript UDF もすぐに理解できます。 マネージ コードを使用した UDF の作成の詳細については、「Excel Services User-Defined Functions」を参照してください。

JavaScript UDF

JavaScript UDF は、Excel ブックを埋め込んだ Web ページをブラウザー内で操作する UDF です。 埋め込まれたブックの中で JavaScript UDF を使用します。 ブラウザーでブックを操作している間は、Excel の組み込み関数と同じように、JavaScript UDF を使用することができます。 Web ページを閉じると、JavaScript UDF は使用できなくなります。

JavaScript UDF の動作の仕組み

JavaScript UDF を使用するには、ブックを埋め込んだ Web ページのコンテンツを修正できるスキルが必要です。 Excel Services の正しい JavaScript ソース ファイルを参照した後、ページに JavaScript UDF コードを追加します。 また、JavaScript UDF を使用する前に、まず Excel Calculation Services に UDF を登録する必要があります。 JavaScript UDF の API が提供するメソッドを使用して、JavaScript UDF の登録および登録解除を行うことができます。

Excel Web Access Web パーツまたはブックが埋め込まれた Web ページを表示する場合、他の Excel ブックのように、ブック内の JavaScript UDF を呼び出すことができます。

たとえば、特定の株式の現在の株価を取得する関数があるとします。 次の JavaScript コードを使用して、Excel ブックをホストする Web ページに JavaScript UDF を追加することができます (ただし、Web ページを作成する権限が必要です)。


function StockInfo(symbol, measure) {
  var req = new XMLHttpRequest();
  req.open('GET', 'http://www.contoso-stock-quotes.com/quote/' + symbol + '/' + measure, false); 
  req.send(null);
  if (req.status == 200) {
    return req.responseText;
  } else {
    throw new Error(ExcelCalcError.Value);
  }
 
ewa.BrowserUdfs.add("StockQuote",
                       StockInfo,
                       "Gets a stock quote given a security symbol and measure to return."
                       false,
                       false
                       );

その後、Excel Online 内のセルから、数式に JavaScript UDF (StockInfo) を呼び出すことができます。

図 1. Excel Online で呼び出された JavaScript UDF

Excel Online で呼び出される JavaScript UDF

JavaScript UDF の使用方法

JavaScript UDF は、SharePoint Excel Web Access Web パーツに表示されたブックまたはブックが埋め込まれたホスト Web ページで作成し使用できます。 ブックは Microsoft OneDrive に保存する必要があります。 主な違いとしては、Excel Web Access Web パーツに追加された JavaScript UDF には SharePoint サーバーが必要です。 ブックが埋め込まれたホスト Web ページに追加された JavaScript UDF の場合、必要なのはブックを OneDrive に保存することだけです。

重要な点

  • JavaScript UDF が機能するのは、それが埋め込まれた Web ページが表示されている間だけです。 JavaScript UDF が作成された Web ページがなくなれば、JavaScript UDF も機能しなくなります。

  • JavaScript UDF 内から Excel Services の JavaScript オブジェクトモデルへの呼び出しを行うことはできません。

関連項目