Excel カスタム関数の開発を開始する

カスタム関数機能を使用すると、開発者は、アドインの一部としてカスタム関数を JavaScript または TypeScript で定義することによって、新しい関数を Excel に追加できます。 Excel のユーザーは、SUM() など、Excel のすべてのネイティブ関数にアクセスするとの同じようにカスタム関数にアクセスできます。

前提条件

  • Node.js (最新 LTS バージョン)。 Node.js サイトにアクセスして、オペレーティング システムに適したバージョンをダウンロードしてインストールします。

  • 最新バージョンの Yeoman と Office アドイン用の Yeoman ジェネレーター。これらのツールをグローバルにインストールするには、コマンド プロンプトから次のコマンドを実行します。

    npm install -g yo generator-office
    

    注:

    Yeomanのジェネレーターを過去に取付けている場合でも、npmからのパッケージを最新のバージョンにすることをお勧めします。

  • Microsoft 365 サブスクリプションに接続されている Office (Office for the web を含む)。

    注:

    まだ Office をお持ちでない場合は、Microsoft 365 開発者プログラムを通じてMicrosoft 365 E5開発者サブスクリプションを受ける資格があります。詳細については、FAQ を参照してください。 または、 1 か月間の無料試用版にサインアップ するか、 Microsoft 365 プランを購入することもできます。

カスタム関数プロジェクトを初めて作成する

はじめに、Yeoman ジェネレーターを使って、カスタム関数プロジェクトを作成します。 これにより、カスタム関数のコーディングを開始するための正しいフォルダー構造、ソース ファイル、依存関係によるプロジェクトがセットアップされます。

  1. 次のコマンドを実行し、Yeoman ジェネレーターを使用してアドイン プロジェクトを作成します。 プロジェクトを含むフォルダーが現在のディレクトリに追加されます。

    yo office
    

    注:

    yo officeコマンドを実行すると、Yeoman のデータ収集ポリシーと Office アドイン CLI ツールに関するプロンプトが表示される場合があります。 提供された情報を使用して、必要に応じてプロンプトに応答します。

    プロンプトが表示されたら、以下の情報を入力してアドイン プロジェクトを作成します。

    • プロジェクトの種類を選択します。Excel Custom Functions using a Shared Runtime
    • スクリプトの種類を選択します。JavaScript
    • アドインに何の名前を付けたいですか?My custom functions add-in

    Yeoman Office アドイン ジェネレーターのコマンド ライン インターフェイスは、カスタム関数プロジェクトのプロンプトを表示します。

    Yeoman ジェネレーターはプロジェクト ファイルを作成し、サポートしているノード コンポーネントをインストールします。

  2. Yeoman ジェネレーターによりプロジェクトの作業に関する手順がコマンド ライン内にいくつか示されますが、これらは無視し、ここに書かれている手順に従ってください。 プロジェクトのルート フォルダーに移動します。

    cd "My custom functions add-in"
    
  3. プロジェクトをビルドします。

    npm run build
    
  4. Node.js で実行しているローカル Web サーバーを開始します。 Excel でカスタム関数アドインを試すことができます。 アドインの作業ウィンドウを開くように求められる場合がありますが、これは省略可能です。 カスタム関数はアドインの作業ウィンドウを開かなくても実行できます。

アドインを Web 版 Excel で試すには、次のコマンドを実行します。 このコマンドを実行すると、ローカル Web サーバーが起動します。 "{url}" を、アクセス許可を持っている OneDrive または SharePoint ライブラリ上の Excel ドキュメントの URL に置き換えます。

注:

Mac で開発している場合は、 {url} を単一引用符で囲みます。 Windows ではこれを行 わないでください

npm run start:web -- --document {url}

次に例を示します。

  • npm run start:web -- --document https://contoso.sharepoint.com/:t:/g/EZGxP7ksiE5DuxvY638G798BpuhwluxCMfF1WZQj3VYhYQ?e=F4QM1R
  • npm run start:web -- --document https://1drv.ms/x/s!jkcH7spkM4EGgcZUgqthk4IK3NOypVw?e=Z6G1qp
  • npm run start:web -- --document https://contoso-my.sharepoint-df.com/:t:/p/user/EQda453DNTpFnl1bFPhOVR0BwlrzetbXvnaRYii2lDr_oQ?e=RSccmNP

ドキュメントにアドインがサイドロードされない場合は、「アドインを手動でサイドロードしてOffice on the webする」の手順に従って手動でサイドロードします。

注:

  • Office アドインでは、開発中でも HTTP ではなく HTTPS を使用する必要があります。 次のいずれかのコマンドを実行した後に証明書のインストールを求められた場合は、Yeoman ジェネレーターが提供する証明書をインストールするプロンプトに同意します。 変更を行うには、管理者としてコマンド プロンプトまたはターミナルを実行する必要がある場合もあります。

  • 初めてコンピューターで Office アドインを開発する場合は、コマンド ラインで、Microsoft Edge WebView にループバックの除外を許可するように求められる場合があります (「Microsoft Edge WebView の localhost ループバックを許可する」)。 メッセージが表示されたら、「 Y 」と入力して除外を許可します。 除外を許可するには管理者特権が必要であることに注意してください。 許可されたら、(マシンから除外を削除しない限り) 今後 Office アドインをサイドロードするときに、除外を求められません。 詳細については、 Office アドインを読み込むか Fiddler を使用する場合は、「localhost からこのアドインを開くことができない」を参照してください。

    Microsoft Edge WebView にループバックの除外を許可するコマンド ラインのプロンプト。

既製のカスタム関数を試す

Yeoman ジェネレーター使用して作成したカスタム関数プロジェクトには既製のカスタム関数がいくつか含まれており、これらは ./src/functions/functions.js ファイル内で定義されています。 カスタム関数はすべて CONTOSO 名前空間に属するということは、プロジェクトのルート ディレクトリの ./manifest.xml ファイルで指定されています。

Excel ブックで次の手順を実行し、ADD カスタム関数を試してみてください。

  1. セルを 1 つ選択し、「=CONTOSO」と入力します。 CONTOSO 名前空間にあるすべての関数がオートコンプリート メニューに一覧表示されます。

  2. セル内に「=CONTOSO.ADD(10,200)」という値を入力して Enter キーを押し、入力パラメーターとして数値「10」 と「200」を指定して、CONTOSO.ADD 関数を実行します。

ADD カスタム関数によって、入力パラメーターとして指定した 2 つの数字の合計が計算されます。 「=CONTOSO.ADD(10,200)」と入力して Enter キーを押すと、210 という結果が生成されるはずです。

オートコンププリート メニューで CONTOSO 名前空間を使用できない場合、次の手順でアドインを Excel に登録します。

  1. Excel で[ ホーム>アドイン]、[ その他のアドイン] の順に選択します。

  2. [ MY ADD-INS ] タブで、[ マイ アドインの管理 ] を選択し、[ マイ アドインのアップロード] を選択します。

  3. [参照...] を選択し、Yeoman ジェネレーターによって作成されたプロジェクトのルート ディレクトリに移動します。

  4. manifest.xml ファイルを選択し、[開く] を選択し、[アップロード] を選択します。

  5. 新しい関数をお試しください。 セル B1 で、テキスト =CONTOSO.GETSTARCOUNT("OfficeDev", "Excel-Custom-Functions") を入力し、Enter キーを押します。 セル B1 の結果は Excel-Custom-Functions Github リポジトリ に与えられた現在の星の数です。

ローカル Web サーバーを停止してアドインをアンインストールする場合は、該当する手順に従います。

  • サーバーを停止するには、次のコマンドを実行します。 npm startを使用した場合は、次のコマンドによってアドインもアンインストールされます。

    npm stop
    
  • アドインを手動でサイドロードした場合は、「 サイドロードされたアドインを削除する」を参照してください。

次の手順

これで、カスタム関数が Excel アドイン内に正常に作成されました。 次は、ストリーミング データ機能を使用してより複雑なアドインを作成してください。 カスタム関数を使用した Excel アドインのチュートリアルの次の手順を確認するには、次のリンクをクリックしてください。

トラブルシューティング

  • Yo Office が実行する自動 npm install ステップが失敗する可能性があります。 npm startを実行しようとしたときにエラーが表示された場合は、コマンド プロンプトで新しく作成したプロジェクト フォルダーに移動し、npm installを手動で実行します。 Yo Office の詳細については、「 Yeoman ジェネレーターを使用して Office アドイン プロジェクトを作成する」を参照してください。
  • クイック スタートを複数回実行すると、問題が発生する場合があります。 Office キャッシュに同じ名前を持つ関数のインスタンスが既に存在する場合、アドインのサイドロード時にエラーが発生します。 これを防ぐには、npm run startを実行する前に Office キャッシュをクリアし、アドインを再起動する前にnpm stopを実行してください。

    Excelで '関数のインストール中にエラーが発生しました' というタイトルのエラー メッセージが表示されます。これには、'同じ名前を持つカスタム関数が既に存在するため、このアドインはインストールされませんでした' というテキストが含まれます。

関連項目