Share via


カスタム関数のトラブルシューティング

カスタム関数を作成してテストするとき、製品でエラーが発生する可能性があります。

重要

Excel カスタム関数は、次のプラットフォームで使用できます。

  • Office on the web
  • Windows での Office
    • Microsoft 365 サブスクリプション
    • retail 永久 Office 2016 以降
    • ボリューム ライセンスの永続的なOffice 2021以降
  • Office on Mac

Excel カスタム関数は現在、次ではサポートされていません。

  • Office on iPad
  • Windows での Office 2019 以前のボリューム ライセンスの永続的バージョン

問題を解決するには、ランタイム ログを有効にしてエラーをキャプチャし、Excel のネイティブ エラー メッセージを参照します。 また、promise を未解決のままにしておくなど、よくある間違いがないか確認します。

カスタム関数のデバッグ

共有ランタイムを使用するカスタム関数アドインをデバッグするには、「共有ランタイムを使用するように Office アドインを構成する: デバッグ」を参照してください。

共有ランタイムを使用しないカスタム関数アドインをデバッグするには、「 カスタム関数のデバッグ」を参照してください。

ランタイム ログを有効にする

Windows 上の Office でアドインをテストする場合は、ランタイム ログを有効にする必要があります。 ランタイム ログでは、問題解明用に別に作成したログ ファイルに console.log ステートメントが配信されます。 ステートメントでは、アドインの XML マニフェスト ファイルに関するエラー、実行時の条件、カスタム関数のインストールなど、さまざまなエラーがカバーされます。 ランタイム ログの詳細については、「ランタイム ログを使用してアドインをデバッグする」を参照してください。

Excel のエラー メッセージを確認する

Excel には多くの組み込みエラー メッセージがあり、計算エラーが発生するとセルに返されます。 カスタム関数では、#NULL!#DIV/0!#VALUE!#REF!#NAME?#NUM!#N/A#BUSY! の各エラー メッセージのみが使用されます。

通常、これらのエラーは、あなたがExcelで既によく見たことがあるかもしれないエラーと対応関係があります。 カスタム関数に固有の例外はわずかにあります。以下に記載します。

  • #NAMEエラーは通常、関数の登録に問題があることを意味します。
  • #N/Aエラーは、登録されている間にその機能を実行できなかったということを示す可能性もあります。 この多くは、CustomFunctions.associateコマンドが欠落していることが原因です。
  • #VALUEエラーは通常、関数のスクリプトファイル内のエラーを示します。
  • #REF!エラーは、関数名がアドイン内に既に存在するの関数名と同じであることを示している可能性があります。

Office のキャッシュをクリアする

カスタム関数に関する情報はOfficeによってキャッシュされます。 開発中、またカスタム関数を使用して繰り返しリロードしている間は、変更が反映されないことがあります。 Officeのキャッシュをクリアすることでこれを修正できます。 詳細については、「Office のキャッシュをクリアする」を参照してください。

一般的な問題と解決策

localhost からアドインを開くことができない: ローカル ループバック除外を使用する

"localhost からこのアドインを開けない" というエラーが表示された場合は、ローカル ループバックの除外を有効にする必要があります。 方法の詳細については、このMicrosoft サポート記事を参照してください。

Windows 上の Excel でランタイム ログが「TypeError: Network request failed」と報告する

localhost サーバーへの呼び出し中にランタイム ログに「TypeError: Network request failed」というエラーが表示された場合は、ローカル ループバック例外を有効にする必要があります。 方法の詳細については、このMicrosoft サポート記事オプション 2 を参照してください。

promise の戻り値を確認する

Excelがカスタム関数の完了を待っている間、#BUSY!と表示されます セル内に。 カスタム関数のコードで promise が返されているのに、promise で結果が返されない場合、Excel は #BUSY! を表示し続けます。 すべての promise でセルに結果が正しく返されていることを、関数で確認します。

エラー:開発サーバーはすでにポート3000で実行されています。

npm startを実行しているときに、開発サーバーが既にポート3000(またはアドインが使用しているポート)で実行されているというエラーが表示されることがあります。 npm stopを実行するか、Node.jsウィンドウを閉じることによって、開発サーバーを停止できます。 場合によっては、開発サーバーの実行が停止するまでに数分かかることがあります。

関数が読み込まれない: 関数を関連付ける

JSON が登録されておらず、独自の JSON メタデータを作成した場合、#VALUE! エラーが表示されるか、アドインを読み込めないという通知が表示されます。 これは通常、各カスタム関数を JSON メタデータ ファイルで指定されている id プロパティと関連付ける必要があります。 これは、 関数を使用 CustomFunctions.associate() して行われます。 通常、この関数呼び出しは、各関数の後、またはスクリプト ファイルの末尾に行われます。 カスタム関数を関連付けないと、カスタム関数は機能しません。

次の例では、add 関数の後で、関数の名前 add と対応する JSON ID ADD を関連付けています。

/**
 * Add two numbers.
 * @customfunction
 * @param {number} first First number.
 * @param {number} second Second number.
 * @returns {number} The sum of the two numbers.
 */
function add(first, second) {
  return first + second;
}

CustomFunctions.associate("ADD", add);

このプロセスの詳細については、「 関数名と JSON メタデータの関連付け」を参照してください。

既知の問題

既知の問題は、 Excel Custom Functions GitHub リポジトリで追跡および報告されます。

フィードバックの報告

ここに記載されていない問題が発生している場合は、お知らせください。 問題を報告するには 2 つの方法があります。

Excel on Windows または Mac

Windows または Mac で Excel を使用している場合は、Excel から直接 Office 拡張機能チームにフィードバックを報告できます。 これを行うには、[ファイル]>[フィードバック]>[問題点、改善の報告] の順に選択します。 問題点や改善点の報告では、発生した問題を理解するために必要なログが提供されます。

GitHub で

ドキュメント ページの下部にある "コンテンツ フィードバック" 機能を使用するか、カスタム関数リポジトリに直接新しい問題を記入して、発生した問題をお気軽に送信してください。

次の手順

XLL ユーザー定義関数と互換性のある、カスタム関数を作成する」で方法を確認してください。

関連項目