ドキュメントで作業ウィンドウを自動的に開く

Office アドインのアドイン コマンドを使用すると、Office アプリのリボンにボタンを追加することで、Office UI を拡張できます。 ユーザーがコマンド ボタンをクリックすると、アクション (作業ウィンドウを開くなど) が実行されます。

いくつかのシナリオでは、ドキュメントを開いたときに、ユーザーの明示的な操作なしで、自動的に作業ウィンドウを開くことが必要になります。 AddInCommands 1.1 要件セットで導入された作業ウィンドウの自動オープン機能を使用すると、シナリオで必要なときに自動的に作業ウィンドウを開くことができます。

ヒント

この記事では、 ドキュメントを開いたときにアドインで作業ウィンドウを開くことができる機能について説明します。 この手法には ドキュメント スコープがあり、各ドキュメントに個別に適用する必要があります。 この機能は、次の 3 つの同様の機能とは異なります。

  • アドインは、エンド ユーザーがインストールした ときに 作業ウィンドウを開くようにマニフェストで構成できます。 この機能のスコープは 1 つのドキュメント (アドインのインストール時に開かれているドキュメント) に限定されます。 詳細については、「 アドインのインストール時に作業ウィンドウを自動的に開く」を参照してください。
  • アドインは、ドキュメントを開いたときにコードを実行するようにプログラムで構成できます。 また、この機能は各ドキュメントに個別に適用する必要があります。 詳細については、「 ドキュメントを開くときにコードを実行するように構成する」を参照してください。
  • アドインをマニフェストで構成し 、ドキュメントが 開かれたときにコードを実行することができます。 この機能は、 Office アプリケーション スコープです。 Microsoft 365 テナントの管理ポータルで Microsoft 365 管理者がアドインをインストールすると、アドインがサポートするようにマニフェストで構成されている Office アプリケーションで開かれているすべての Office ドキュメントに対してアドインが起動され、コードが実行されます。 詳細については、「 イベントでアドインをアクティブ化する」を参照してください。特に OnDocumentOpened イベントに関する情報。

Autoopen 機能と作業ウィンドウの挿入の相違点

ユーザーがアドイン コマンドを使用しないアドインを起動すると、アドインはドキュメントに挿入され、そのドキュメントに保持されます。 その結果、他のユーザーがドキュメントを開くと、アドインをインストールするように求められ、作業ウィンドウが開きます。 このモデルの課題は、多くの場合、ユーザーはアドインをドキュメントに保持したくないことです。 たとえば、Word ドキュメントで辞書アドインを使用する学生は、そのドキュメントを同級生や教師が開いたときに、アドインのインストールを求めるダイアログが表示されることを望まない場合もあります。

Autoopen 機能では、特定のドキュメントに特定の作業ウィンドウ アドインを永続化させるかどうかをユーザーが明示的に定義できます。

サポートと可用性

重要

自動オープン機能は、Microsoft Marketplace で公開されているアドインではサポートされていません。 自動オープン機能は、一元的に展開またはサイドロードされるアドインでのみサポートされます。

自動オープン機能は現在、次の製品とプラットフォームでサポートされています。

製品 プラットフォーム
  • Word
  • Excel
  • PowerPoint
サポートされているすべての製品でサポートされているプラットフォーム:
  • Office on the web
  • Windows の Office (バージョン 1705 (ビルド 8121.1000) 以降)
  • Mac の Office (バージョン 15.34 (17051500) 以降)

ベスト プラクティス

自動オープン機能を使用するときは、次のベスト プラクティスを適用してください。

  • Autoopen 機能は、アドイン ユーザーの作業効率の向上に役立つ場合に使用します。たとえば、次の場合に使用します。
    • 適切に機能するには、ドキュメントにアドインが必要になる場合。 たとえば、アドインで最新の情報に定期的に更新される在庫の値が含まれているスプレッドシート。 最新の値が維持されるように、アドインはスプレッドシートが開かれたときに自動的に開かれる必要があります。
    • 特定のドキュメントでユーザーが常にアドインを使用する可能性が高い場合。 たとえば、バックエンド システムから情報を取得して、ドキュメントのデータを設定または変更することでユーザーを支援するアドイン。
  • Autoopen 機能はユーザーがオン/オフできるようにします。 アドインの作業ウィンドウが自動的に起動されないようにするオプションをユーザーの UI に含めます。
  • 要件セットの検出を使用して、自動オープン機能が使用できるかどうかを判断し、使用できない場合はフォールバック動作を提供します。
  • アドインの使用率を人為的に増やすために、Autoopen 機能を使用しないでください。 アドインが特定のドキュメントで自動的に開くのが理にかなっていない場合、この機能はユーザーを悩ませる可能性があります。
  • この機能は、複数の作業ウィンドウを固定するために使用しないでください。 1 つのドキュメントで自動的に開くアドインのウィンドウは 1 つのみ設定できます。

オートオープン機能を実装する

  • 自動的に開く作業ウィンドウを指定します。
  • 作業ウィンドウを自動的に開くドキュメントにタグ設定します。

重要

自動的に開くように指定したウィンドウは、アドインがユーザーのデバイスに既にインストールされている場合にのみ開きます。 ユーザーがドキュメントを開くときにアドインをインストールしていない場合、自動オープン機能は機能せず、設定は無視されます。 アドインをドキュメントと共に配布する必要がある場合は、visibility プロパティを 1 に設定する必要があります。これは OpenXML を使用してのみ実行できます。例はこの記事の後半で示します。

手順 1: 開く作業ウィンドウを指定する

自動的に開く作業ウィンドウ ページを指定するようにマニフェストを構成します。 このプロセスは、アドインが使用するマニフェストの種類によって異なります。

自動的に開く作業ウィンドウを指定するには、"code.page" プロパティが自動的に開くページの URL に設定されている "runtimes" 配列でランタイム オブジェクトを見つけます。 この同じランタイム オブジェクト内の "actions" 配列に、 "type" 値が "openPage" のアクションが少なくとも 1 つあることを確認します。 このアクション オブジェクトに "view" プロパティを追加し、 "Office.AutoShowTaskpaneWithDocument" に設定します。 この値は 1 つのアクション オブジェクトに対してのみ設定でき、タイプ "openPage" のアクションである必要があります。 複数のアクションにこの値を設定すると、値の最初の出現が認識され、それ以外は無視されます。

次の例は、"Office.AutoShowTaskpaneWithDocument" に設定された"view"値を示しています。

"runtimes": [
    {
        ...
        "code": {
            "page": "https://contoso.com/taskpane.html"
        },
        "actions": [
            {
                "id": "ShowTaskPane",
                "type": "openPage",
                "view": "Office.AutoShowTaskpaneWithDocument"
            }
        ]
    }
]

手順 2:作業ウィンドウを自動的に開くよう、ドキュメントにタグを設定する

Autoopen 機能をトリガーするよう、2 つのうちどちらかの方法でドキュメントにタグを設定できます。 シナリオに最も適した方法を選択します。

クライアント側でドキュメントにタグを設定する

次の例に示すように、Office.js settings.set メソッドを使用して、 Office.AutoShowTaskpaneWithDocument を true に設定します。

Office.context.document.settings.set("Office.AutoShowTaskpaneWithDocument", true);
Office.context.document.settings.saveAsync();

このメソッドは、アドインの対話式操作の一環としてドキュメントにタグを設定する必要がある場合に使用します (たとえば、ユーザーがバインディングを作成した直後に、または自動的にウィンドウを開くことを示すオプションを選択した直後に使用します)。

Open XML を使用してドキュメントにタグを設定する

Open XML を使用すると、Autoopen 機能をトリガーするために、ドキュメントを作成または変更して、適切な Open Office XML マークアップを追加できます。 この方法を示すサンプルについては、「Office-OOXML-EmbedAddin」を参照してください。

ドキュメントに 2 つの Open XML パーツを追加します。

  • webextension パート
  • taskpane パート

次の例は、webextension パートを追加する方法を示しています。

<we:webextension xmlns:we="http://schemas.microsoft.com/office/webextensions/webextension/2010/11" id="[ADD-IN ID PER MANIFEST]">
  <we:reference id="[GUID or Microsoft Marketplace asset ID]" version="[your add-in version]" store="[Pointer to store or catalog]" storeType="[Store or catalog type]"/>
  <we:alternateReferences/>
  <we:properties>
   <we:property name="Office.AutoShowTaskpaneWithDocument" value="true"/>
  </we:properties>
  <we:bindings/>
  <we:snapshot xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"/>
</we:webextension>

webextension パートには、プロパティ バッグと Office.AutoShowTaskpaneWithDocument という名前のプロパティが含まれています。このプロパティは、true に設定する必要があります。

また、webextension パートには、属性が id、storeType、store、および version のストアまたはカタログへの参照も含まれています。 Autoopen 機能に関連する storeType の値は、4 つのみです。 その他の 3 つの属性の値は、次の表に示すように、storeType の値に応じて決まります。

storeType 値 id 値 store 値 version 値
OMEX (Microsoft Marketplace) アドインの Microsoft Marketplace アセット ID (「注」を参照)。 Microsoft Marketplace のロケール。たとえば、"en-US" です。 Microsoft Marketplace カタログ内のバージョン (「注」を参照)。
WOPICatalog (パートナー WOPI ホスト) アドインの Microsoft Marketplace アセット ID (「注」を参照)。 "wopicatalog". この値は、App Source で公開され、WOPI ホストにインストールされるアドインに使用します。 詳細については、「 Office Online との統合」を参照してください。 アドイン マニフェストでのバージョン。
FileSystem (ネットワーク共有) アドイン マニフェストでのアドインの GUID。 ネットワーク共有のパス。たとえば、"\\MyComputer\MySharedFolder" です。 アドイン マニフェストでのバージョン。
EXCatalog (Exchange サーバー経由の展開) アドイン マニフェストでのアドインの GUID。 "EXCatalog". EXCatalog 行は、Microsoft 365 管理センターで一元化された展開を使用するアドインで使用する行です。 アドイン マニフェストでのバージョン。
Registry (システム レジストリ) アドイン マニフェストでのアドインの GUID。 "developer" アドイン マニフェストでのバージョン。

注:

Microsoft Marketplace でアドインのアセット ID とバージョンを確認するには、アドインの Microsoft Marketplace ランディング ページに移動します。 アセット ID は、ブラウザーのアドレス バーに表示されます。 バージョンは、そのページの [詳細] セクションに示されます。

webextension マークアップの詳細については、「[MS-OWEXML] 2.2.5.WebExtensionReference」を参照してください。

次の例は、taskpane パートを追加する方法を示しています。

<wetp:taskpane dockstate="right" visibility="0" width="350" row="4" xmlns:wetp="http://schemas.microsoft.com/office/webextensions/taskpanes/2010/11">
  <wetp:webextensionref xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" r:id="rId1" />
</wetp:taskpane>

この例では、visibility 属性が "0" に設定されている点に注目してください。 これは、webextension パートと taskpane パートの追加後に、初めてドキュメントを開いたときに、ユーザーはリボンの [アドイン] ボタンからアドインをインストールする必要があることを意味します。 それ以降は、ファイルを開いたときに、アドイン作業ウィンドが自動的に開きます。 また、visibility を "0" に設定すると、ユーザーが Autoopen 機能をオン/オフできるようにするために Office.js を使用できるようにもなります。 具体的には、スクリプトでドキュメント設定の Office.AutoShowTaskpaneWithDocument を true または false に設定します (詳細については、「クライアント側でドキュメントにタグを設定する」を参照してください)。

visibility が "1" に設定されていると、初めてドキュメントを開いたときに、自動的に作業ウィンドウが開きます。 アドインを信頼するように求めるダイアログがユーザーに表示され、信頼が付与されるとアドインが開きます。 それ以降は、ファイルを開いたときに、アドイン作業ウィンドが自動的に開きます。 ただし、visibility を "1" に設定すると、ユーザーが Autoopen 機能をオン/オフできるようにするために Office.js を使用することができなくなります。

アドインとドキュメントのテンプレートまたはコンテンツが緊密に統合されていて、ユーザーが Autoopen 機能をオフにすることない場合は、visibility を "1" に設定することが適切な選択になります。

注:

ドキュメントとともにアドインを配布する場合は、ユーザーにアドインをインストールするように求めるために、visibility プロパティを 1 に設定する必要があります。 これは、Open XML でのみ実行できます。

XML を記述する簡単な方法は、まずアドインを実行し、 クライアント側でドキュメントにタグ付け して値を書き込んでから、ドキュメントを保存して、生成された XML を検査することです。Office が適切な属性値を検出して提供します。 Open XML SDK 生産性向上ツールを使用して C# コードを生成し、生成した XML に基づいてプログラムでマークアップを追加することもできます。

作業ウィンドウ表示のテストと検証

Microsoft 365 管理センターを介した一元展開を使用して、自動的に作業ウィンドウを開くアドインのテスト バージョンを展開できます。 次の例では、EXCatalog のストア版を使用して一元展開カタログからアドインを挿入する方法を示します。

<we:webextension xmlns:we="http://schemas.microsoft.com/office/webextensions/webextension/2010/11" id="{52811C31-4593-43B8-A697-EB873422D156}">
    <we:reference id="af8fa5ba-4010-4bcc-9e03-a91ddadf6dd3" version="1.0.0.0" store="EXCatalog" storeType="EXCatalog"/>
    <we:alternateReferences/>
    <we:properties/>
    <we:bindings/>
    <we:snapshot xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"/>
</we:webextension>

Microsoft 365 サブスクリプションを使用して上記の例をテストし、一元展開を試し、アドインが期待どおりに動作することを確認できます。 Microsoft 365 サブスクリプションをまだお持ちでない場合は、Microsoft 365 開発者プログラムを通じて Microsoft 365 E5 開発者サブスクリプションの資格を得ることができます。詳細については、FAQ を参照してください。 または、 1 か月間の無料試用版にサインアップ するか、 Microsoft 365 プランを購入できます。

関連項目