次の方法で共有


イベント ベースのアドインとスパム レポート アドインのトラブルシューティング

イベント ベースまたはスパムレポート アドインを開発するときに、アドインが読み込まれていない、イベントが発生しないなどの問題が発生する可能性があります。 次のセクションでは、アドインのトラブルシューティング方法に関するガイダンスを提供します。

機能の前提条件を確認する

マニフェストと JavaScript の要件を確認する

  • アドインのマニフェストで次の条件が満たされていることを確認します。

    • アドインのソース ファイルの場所 URL がパブリックに利用可能であり、ファイアウォールによってブロックされていないことを確認します。 この URL は、アドインのみのマニフェストの SourceLocation 要素 、または Microsoft 365 の統合マニフェストの "extensions.runtimes.code.page" プロパティで指定されます。

    • <Runtimes>要素 (アドイン専用マニフェスト) または "extensions.runtimes.code" プロパティ (統合マニフェスト) が、イベント ハンドラーを含む HTML または JavaScript ファイルを正しく参照していることを確認します。 Windows 上のクラシック Outlook やその他の Windows ベースの Office アプリケーションでは、実行時に JavaScript ファイルが使用されますが、Office on the web、新しい Outlook Mac UI、および新しい Outlook on Windows では HTML ファイルが使用されます。 マニフェストでこれを構成する方法の例については、「 新しいメッセージまたは予定の件名を自動的に設定する」の「マニフェストの構成」セクションを参照してください。

      Windows クライアント (新しい Outlook on Windows を除く) の場合は、すべてのイベント処理 JavaScript コードをマニフェストで参照されているこの JavaScript ファイルにバンドルする必要があります。 大きな JavaScript バンドルでは、アドインのパフォーマンスに問題が発生する可能性があることに注意してください。 大量の操作を前処理して、イベント処理コードに含めないようにすることをお勧めします。

  • Windows クライアント (新しい Outlook on Windows を除く) の場合、マニフェストでイベントを処理するために指定された JavaScript 関数が実行されると、 Office.onReady()Office.initialize のコードは実行されません。 代わりに、ユーザーのクライアント バージョンの確認など、イベント ハンドラーに必要なスタートアップ ロジックをイベント ハンドラーに追加することをお勧めします。

  • イベント処理 JavaScript ファイルが Office.actions.associateを呼び出していることを確認します。 これにより、マニフェストで指定されたイベント ハンドラー名が、対応する JavaScript にマップされます。 以下にコードの例を示します。

    Office.actions.associate("onNewMessageComposeHandler", onNewMessageComposeHandler);
    
  • バージョン 2403 より前のクラシック Outlook on Windows バージョン (ビルド 17425.20000) では、イベント ベースアドインとスパムレポート アドインの JavaScript コードでは 、ECMAScript 2016 以前の仕様のみがサポートされています。 避けるプログラミング構文の例を次に示します。

    • コードで async ステートメントと await ステートメントを使用しないでください。 これらを JavaScript コードに含めると、アドインがタイムアウトになります。
    • アドインの読み込みを妨げるため、 条件付き (三項) 演算子 は使用しないでください。

    アドインに、Outlook on the web、Windows (新規およびクラシック)、Mac で参照されている JavaScript ファイルが 1 つだけある場合は、以前のバージョンのクラシック Outlook on Windows でアドインが実行されるように、コードを ECMAScript 2016 に制限する必要があります。 ただし、Outlook on the web、Mac、最新バージョンのクラシック Outlook on Windows、および新しい Outlook on Windows によって参照される別の JavaScript ファイルがある場合は、そのファイルに後の ECMAScript 仕様を実装できます。

Webpack の構成を確認する

Windows クライアント (新しい Outlook on Windows を除く) では、イベント ベースのアドインが Webpack を使用してファイルをバンドルし、イベント ハンドラーが実行されない場合は、静的ファイルを提供するようにアドインの Webpack 開発サーバーを構成します。 この方法により、Webpack は、JavaScript ランタイムと互換性がない可能性があるコードをアドインのファイルに追加できなくなります。 静的ファイルを使用するようにアドインを次のように構成します。

  1. アドインの webpack.config.js ファイルで、Node.js path モジュールをインポートします。

    const path = require("path");
    
  2. 同じファイルで、 dist フォルダーの静的ファイルを提供するように webpack 開発サーバーを構成します。

    ...
    devServer: {
      static: {
        directory: path.join(__dirname, "dist"),
        publicPath: "/public",
      },
      ...
    }
    ...
    
  3. npm run build を実行します。

  4. アドインのマニフェストで、イベント処理 JavaScript ファイルへのパスを更新して、静的ディレクトリから提供されるビルド ファイルを参照します。 たとえば、「 https://localhost:3000/public/launchevent.js 」のように入力します。

アドインのデバッグ

  • アドインを変更するときは、次の点に注意してください。

    • マニフェストを更新する場合は、アドインを削除してから、もう一度サイドロードします。 Outlook からサイドロードされたアドインを削除する方法については、「 テスト用のサイドロード Outlook アドイン」を参照してください。 Outlook on Windows を使用している場合は、Outlook を閉じてもう一度開く必要もあります。
    • マニフェスト以外のファイルを変更する場合は、Windows または Mac で Office クライアントを閉じてもう一度開くか、Office on the web実行されているブラウザー タブを更新します。
    • これらの手順を実行しても変更が表示できない場合は、 Office キャッシュをクリアします
  • Windows 上の Office でアドインをテストするとき (新しい Outlook on Windows を除く)。

    • イベント ベースのアドインの場合は、報告されたアドイン エラーのイベント ビューアーをチェックします。

      1. イベント ビューアーで、[Windows ログ>Application] を選択します。
      2. [アクション] パネルで、[現在のログのフィルター] を選択します。
      3. [ ログ記録 ] ドロップダウンから、任意のログ時間枠を選択します。
      4. [ エラー ] チェック ボックスをオンにします。
      5. [ イベント ID ] フィールドに「 63」と入力します。
      6. [ OK] を選択 してフィルターを適用します。

      過去 1 時間に発生したイベント ID 63 の Outlook エラーのみを表示するように構成された、イベント ビューアーの [現在のログのフィルター] 設定のサンプル。

    • bundle.js ファイルがエクスプローラー内の次のフォルダーにダウンロードされていることを確認します。 []で囲まれたテキストは、該当する Office とアドインの情報を表します。

      %LOCALAPPDATA%\Microsoft\Office\16.0\Wef\{[Office profile GUID]}\[Office account encoding]\Javascript\[Add-in ID]_[Add-in Version]_[locale]
      

      ヒント

      • 読みやすくするために、この記事ではファイル名を bundle.jsと呼びますが、正確な名前は Office アプリケーションによって異なります。
        • Excel: bundle_excel.js
        • Outlook: bundle.js
        • PowerPoint: bundle_powerpoint.js
        • Word: bundle_word.js
      • bundle.js ファイル パスで使用される Office プロファイル GUID とアカウント エンコードを決定する直接の方法はありません。 アドインの bundle.js ファイルを見つけるための最も効果的な方法は、アドインの ID を含む Javascript フォルダーが見つかるまで、各フォルダーを手動で検査することです。
      • bundle.js ファイルは、アドインの最初のインストール時にローカル Wef フォルダーにダウンロードされます。 Office アプリケーションが起動または再起動されるたびに更新されます。 bundle.js ファイルが Wef フォルダーに表示されておらず、アドインがインストールまたはサイドロードされている場合は、Office を再起動します。 Outlook の場合は、 アドインを削除してから、もう一度 サイドロード する必要がある場合があります。
  • デスクトップ クライアント (新しい Outlook on Windows を除く) でアドインをテストするときに、ランタイム ログを有効にして、マニフェストとアドインのインストールに関する問題の可能性を特定します。 ランタイム ログを使用する方法のガイダンスについては、「ランタイム ログを使用 してアドインをデバッグする」を参照してください。

  • コードにブレークポイントを設定してアドインをデバッグします。 プラットフォーム固有の手順については、「 イベント ベースのアドインとスパム レポート アドインをデバッグする」を参照してください。

追加のヘルプを求める

推奨されるトラブルシューティング手順を実行した後もヘルプが必要な場合は、 GitHub の問題を開きます。 スクリーンショット、ビデオ録画、またはランタイム ログを含め、レポートを補完します。

関連項目