ExtensionPoint 要素

Office UI でアドインが機能を公開する場所を定義します。 <ExtensionPoint> 要素は、AllFormFactorsDesktopFormFactor、または MobileFormFactor の子要素です。

アドインの種類: ドキュメント、メール、プレゼンテーション、作業ウィンドウ、ブック

次の VersionOverrides スキーマでのみ有効です:

  • 作業ウィンドウ 1.0
  • メール 1.0
  • メール 1.1

詳細については、「 アドインのみのマニフェストのバージョンのオーバーライド」を参照してください。

属性

属性 必須 説明
xsi:type はい 定義される拡張点の種類。 可能な値は、祖父母の <Host> 要素値で定義されている Office ホスト アプリケーションによって異なります。

Excel、Outlook、PowerPoint、Word の拡張ポイント

  • LaunchEvent - を開くなどのアプリケーション イベントに基づいてタスクをアクティブ化します。

LaunchEvent

この拡張ポイントを使用すると、デスクトップとモバイルの両方のフォーム ファクターでサポートされているイベントに基づいてアドインをアクティブ化できます。 イベント ベースのライセンス認証とサポートされているイベントの完全な一覧については、「 イベントを使用してアドインをアクティブ化する」を参照してください。

重要

この拡張ポイントでは、 MailboxItemevents を登録できません。

子要素

要素 説明
LaunchEvents イベント ベースのアクティベーションの LaunchEvent の一覧。
SourceLocation ソース JavaScript ファイルの場所。

重要: <SourceLocation> 要素のresid値は、ブラウザー ランタイムを表す <Runtime> 要素のresid値と一致する必要があります。 たとえば、ランタイムが <Runtime resid="WebViewRuntime.Url"> として定義されている場合は、 <SourceLocation resid="WebViewRuntime.Url"/>

<ExtensionPoint xsi:type="LaunchEvent">
  <LaunchEvents>
    <LaunchEvent Type="OnNewMessageCompose" FunctionName="onMessageComposeHandler"/>
    <LaunchEvent Type="OnNewAppointmentOrganizer" FunctionName="onAppointmentComposeHandler"/>
  </LaunchEvents>
  <!-- Identifies the runtime to be used. The resid value must match the resid value of the Runtime element that represents the browser runtime. -->
  <SourceLocation resid="WebViewRuntime.Url"/>
</ExtensionPoint>

Excel、OneNote、PowerPoint、Word アドイン コマンドの拡張ポイント

これらのホストの一部またはすべてで使用できる拡張ポイントは 3 種類あります。

  • PrimaryCommandSurface (Word、Excel、PowerPoint、および OneNote で有効) - Office のリボン。
  • ContextMenu (Word、Excel、PowerPoint、OneNote で有効) - Office UI を右クリック (または長押し) したときに表示されるショートカット メニュー。
  • CustomFunctions (Excel でのみ有効) - Excel 用の JavaScript で記述されたカスタム関数。

子要素とこれらの種類の拡張点の例については、次のサブセクションを参照してください。

PrimaryCommandSurface

Word、Excel、PowerPoint、および OneNote の主要なコマンド サーフェイスはリボンです。

子要素

要素 説明
CustomTab ( PrimaryCommandSurface を使用して) リボンにカスタム タブを追加する場合に必要です。 <CustomTab> 要素を使用する場合は、<OfficeTab> 要素を使用できません。 id 属性が必要です。 <CustomTab> 子要素は複数存在することはできません。
OfficeTab 既定の Office アプリのリボン タブを ( PrimaryCommandSurface を使用して) 拡張する場合は必要です。 <OfficeTab> 要素を使用する場合は、<CustomTab> 要素を使用できません。

重要

アドインに子要素を持つ <ExtensionPoint> 要素は 1 つしか存在できません<CustomTab> その 1 つの要素 <ExtensionPoint> 要素には <CustomTab> を 1 つだけ持つことができるため、すべての <ExtensionPoint> 要素の間に存在する <CustomTab> 要素は 1 つだけです。

次の例は、PrimaryCommandSurface<ExtensionPoint> 要素を使用する方法を示しています。 リボンにカスタム タブが追加されます。

重要

ID 属性を含む要素では、一意の ID を指定してください。

<ExtensionPoint xsi:type="PrimaryCommandSurface">
  <CustomTab id="Contoso.MyTab1">
    <Label resid="residLabel4" />
    <Group id="Contoso.Group1">
      <Label resid="residLabel4" />
      <Icon>
        <bt:Image size="16" resid="icon1_32x32" />
        <bt:Image size="32" resid="icon1_32x32" />
        <bt:Image size="80" resid="icon1_32x32" />
      </Icon>
      <Control xsi:type="Button" id="Contoso.Button1">
          <!-- information about the control -->
      </Control>
      <!-- other controls, as needed -->
    </Group>
  </CustomTab>
</ExtensionPoint>

ContextMenu

コンテキスト メニューは、Office UI を右クリック (または長押し) したときに表示されるショートカット メニューです。

子要素

要素 説明
OfficeMenu ( ContextMenu を使用して) 既定のコンテキスト メニューにアドイン コマンドを追加する場合に必要です。 id 属性は、次のいずれかの文字列に設定する必要があります。
  • ユーザーが選択したテキストを右クリック (または長押し) したときにコンテキスト メニューを開く場合は、ContextMenuText
  • ユーザーが Excel スプレッドシートのセルを右クリック (または選択して長押し) したときにコンテキスト メニューを開く場合は、ContextMenuCell

次の操作は、サポートされている Office アプリケーションで選択したテキストで開くコンテキスト メニューをカスタマイズします。 使用されるコンテキスト メニュー コントロールの種類は Button です。

<ExtensionPoint xsi:type="ContextMenu">
  <OfficeMenu id="ContextMenuText"> <!-- OR, for Excel only: <OfficeMenu id="ContextMenuCell"> -->
    <Control xsi:type="Button" id="ContextMenuButton">
      <Label resid="TaskpaneButton.Label"/>
      <Supertip>
        <Title resid="TaskpaneButton.Label" />
        <Description resid="TaskpaneButton.Tooltip" />
      </Supertip>
      <Icon>
        <bt:Image size="16" resid="tpicon_16x16" />
        <bt:Image size="32" resid="tpicon_32x32" />
        <bt:Image size="80" resid="tpicon_80x80" />
      </Icon>
      <Action xsi:type="ExecuteFunction">
        <FunctionName>action</FunctionName>
      </Action>
    </Control>
  </OfficeMenu>
</ExtensionPoint>

CustomFunctions

JavaScript または TypeScript for Excel で記述されたカスタム関数。

子要素

要素 説明
Script 必須です。 カスタム関数の定義と登録コードを含む JavaScript ファイルへのリンク。
Page 必須です。 カスタム関数についての HTML ページにリンクします。
メタデータ 必須です。 Excel でカスタム関数によって使用されるメタデータの設定を定義します。
Namespace 省略可能。 Excel でカスタム関数によって使用される名前空間を定義します。

<ExtensionPoint xsi:type="CustomFunctions">
  <Script>
    <SourceLocation resid="Functions.Script.Url"/>
  </Script>
  <Page>
    <SourceLocation resid="Shared.Url"/>
  </Page>
  <Metadata>
    <SourceLocation resid="Functions.Metadata.Url"/>
  </Metadata>
  <Namespace resid="Functions.Namespace"/>
</ExtensionPoint>

Outlook のみの拡張点

MessageReadCommandSurface

この拡張点により、メールの閲覧ビューのコマンド サーフェスにボタンが配置されます。 Outlook デスクトップでは、これはリボンに表示されます。

子要素

要素 説明
OfficeTab コマンドを既定のリボン タブに追加します。
CustomTab コマンドをカスタム リボン タブに追加します。

OfficeTab の例

<ExtensionPoint xsi:type="MessageReadCommandSurface">
  <OfficeTab id="TabDefault">
        <-- OfficeTab Definition -->
  </OfficeTab>
</ExtensionPoint>

CustomTab の例

<ExtensionPoint xsi:type="MessageReadCommandSurface">
  <CustomTab id="Contoso.TabCustom2">
        <-- CustomTab Definition -->
  </CustomTab>
</ExtensionPoint>

MessageComposeCommandSurface

この拡張点は、メールの新規作成フォームを使用してアドイン用のリボンにボタンを配置します。

子要素

要素 説明
OfficeTab コマンドを既定のリボン タブに追加します。
CustomTab コマンドをカスタム リボン タブに追加します。

OfficeTab の例

<ExtensionPoint xsi:type="MessageComposeCommandSurface">
  <OfficeTab id="TabDefault">
        <-- OfficeTab Definition -->
  </OfficeTab>
</ExtensionPoint>

CustomTab の例

<ExtensionPoint xsi:type="MessageComposeCommandSurface">
  <CustomTab id="Contoso.TabCustom3">
        <-- CustomTab Definition -->
  </CustomTab>
</ExtensionPoint>

AppointmentOrganizerCommandSurface

この拡張点は、会議の開催者に表示されるフォームのリボンにボタンを配置します。

子要素

要素 説明
OfficeTab コマンドを既定のリボン タブに追加します。
CustomTab コマンドをカスタム リボン タブに追加します。

OfficeTab の例

<ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
  <OfficeTab id="TabDefault">
        <-- OfficeTab Definition -->
  </OfficeTab>
</ExtensionPoint>

CustomTab の例

<ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
  <CustomTab id="Contoso.TabCustom4">
        <-- CustomTab Definition -->
  </CustomTab>
</ExtensionPoint>

AppointmentAttendeeCommandSurface

この拡張点は、会議の出席者に表示されるフォームのリボンにボタンを配置します。

子要素

要素 説明
OfficeTab コマンドを既定のリボン タブに追加します。
CustomTab コマンドをカスタム リボン タブに追加します。

OfficeTab の例

<ExtensionPoint xsi:type="AppointmentAttendeeCommandSurface">
  <OfficeTab id="TabDefault">
        <-- OfficeTab Definition -->
  </OfficeTab>
</ExtensionPoint>

CustomTab の例

<ExtensionPoint xsi:type="AppointmentAttendeeCommandSurface">
  <CustomTab id="Contoso.TabCustom5">
        <-- CustomTab Definition -->
  </CustomTab>
</ExtensionPoint>

Module

この拡張ポイントは、モジュール拡張アドインを Outlook ナビゲーション バーに追加します。 また、モジュール拡張機能のリボンのカスタム タブにボタンを追加します。 モジュール拡張を作成する方法については、「 モジュール拡張 Outlook アドイン」を参照してください。

重要

この拡張ポイントでは、 MailboxItemevents を登録できません。

子要素

要素 説明
SourceLocation アドインのメイン ユーザー インターフェイスを設定する HTML ファイルの場所を指定します。
Label モジュール拡張機能のラベルを指定します。 resid 属性は 32 文字以内で、ShortStrings 要素の <String> 要素の id 属性の値に設定する必要があります。
CommandSurface リボンのカスタム タブにアドイン ボタンのグループを追加します。

<ExtensionPoint xsi:type="Module">
  <SourceLocation resid="residExtensionPointUrl"/>
  <Label resid="residExtensionPointLabel"/>
  <CommandSurface>
    <CustomTab id="idTab">
      <Group id="idGroup">
        <Label resid="residGroupLabel"/>
        <Control xsi:type="Button" id="group.changeToAssociate">
          <Label resid="residChangeToAssociateLabel"/>
          <Supertip>
            <Title resid="residChangeToAssociateLabel"/>
            <Description resid="residChangeToAssociateDesc"/>
          </Supertip>
          <Icon>
            <bt:Image size="16" resid="residAssociateIcon16"/>
            <bt:Image size="32" resid="residAssociateIcon32"/>
            <bt:Image size="80" resid="residAssociateIcon80"/>
          </Icon>
          <Action xsi:type="ExecuteFunction">
            <FunctionName>changeToAssociateRate</FunctionName>
          </Action>
        </Control>
      </Group>
      <Label resid="residCustomTabLabel"/>
    </CustomTab>
  </CommandSurface>
</ExtensionPoint>

MobileMessageReadCommandSurface

この拡張点により、モバイル フォーム ファクターのメールの閲覧ビューのコマンド領域にボタンが配置されます。

子要素

要素 説明
Group コマンド領域にボタンのグループを追加します。

この種類の <ExtensionPoint> 要素は、子要素 (<Group> 要素) を 1 つだけ持つことができます。

この拡張ポイントに含まれる <Control> 要素では、xsi:type 属性が MobileButton に設定されている必要があります。

<ExtensionPoint xsi:type="MobileMessageReadCommandSurface">
  <Group id="Contoso.mobileGroup1">
    <Label resid="residAppName"/>
    <Control xsi:type="MobileButton" id="Contoso.mobileButton1">
      <!-- Control definition -->
    </Control>
  </Group>
</ExtensionPoint>

MobileOnlineMeetingCommandSurface

この拡張ポイントは、モバイル フォーム ファクターの予定のコマンド サーフェイスにモードに適したトグルを配置します。 会議の開催者は、オンライン会議を作成できます。 その後、出席者はオンライン会議に参加できます。 このシナリオの詳細については、「 オンライン会議プロバイダー用の Outlook モバイル アドインを作成する」を参照してください。

注:

この拡張ポイントは、Android と Microsoft 365 サブスクリプションを持つ iOS でのみサポートされます。

この拡張ポイントでは、 MailboxItemevents を登録できません。

子要素

要素 説明
Control コマンド サーフェイスにボタンを追加します。

この型の <ExtensionPoint> 要素には、子要素 (<Control> 要素) を 1 つだけ持つことができます。

この拡張ポイントに含まれる <Control> 要素では、 xsi:type 属性が MobileButton に設定されている必要があります。

<Icon> 要素で指定される画像は、16進コード #919191または他のカラー形式で同等のものを使用してグレースケールにする必要があります。

<ExtensionPoint xsi:type="MobileOnlineMeetingCommandSurface">
  <Control xsi:type="MobileButton" id="Contoso.onlineMeetingFunctionButton1">
    <Label resid="residUILessButton0Name" />
    <Icon>
      <bt:Image resid="UiLessIcon" size="25" scale="1" />
      <bt:Image resid="UiLessIcon" size="25" scale="2" />
      <bt:Image resid="UiLessIcon" size="25" scale="3" />
      <bt:Image resid="UiLessIcon" size="32" scale="1" />
      <bt:Image resid="UiLessIcon" size="32" scale="2" />
      <bt:Image resid="UiLessIcon" size="32" scale="3" />
      <bt:Image resid="UiLessIcon" size="48" scale="1" />
      <bt:Image resid="UiLessIcon" size="48" scale="2" />
      <bt:Image resid="UiLessIcon" size="48" scale="3" />
    </Icon>
    <Action xsi:type="ExecuteFunction">
      <FunctionName>insertContosoMeeting</FunctionName>
    </Action>
  </Control>
</ExtensionPoint>

MobileLogEventAppointmentAttendee

この拡張ポイントは、モバイル フォーム ファクターの予定のコマンド サーフェイスに、コンテキストに応じて [アクションのログ ] ボタンを配置します。 アドインをインストールした予定の出席者は、クリック 1 回で予定メモを外部アプリに保存できます。 この拡張ポイントは、作業ウィンドウ コマンドと関数コマンドの機能をサポートします。 このシナリオの詳細については、「 Outlook モバイル アドインの外部アプリケーションに予定のメモをログに記録する」を参照してください。

注:

この拡張ポイントは、Android と Microsoft 365 サブスクリプションを持つ iOS でのみサポートされます。

この拡張ポイントでは、 MailboxItemevents を登録できません。

子要素

要素 説明
Control コマンド サーフェイスにボタンを追加します。

この型の <ExtensionPoint> 要素には、子要素 (<Control> 要素) を 1 つだけ持つことができます。

この拡張ポイントに含まれる <Control> 要素では、 xsi:type 属性が MobileButton に設定されている必要があります。

<Icon> 要素で指定される画像は、16進コード #919191または他のカラー形式で同等のものを使用してグレースケールにする必要があります。

<ExtensionPoint xsi:type="MobileLogEventAppointmentAttendee">
  <Control xsi:type="MobileButton" id="appointmentReadFunctionButton">
    <Label resid="LogButtonLabel" />
    <Icon>
      <bt:Image resid="Icon.16x16" size="25" scale="1" />
      <bt:Image resid="Icon.16x16" size="25" scale="2" />
      <bt:Image resid="Icon.16x16" size="25" scale="3" />
      <bt:Image resid="Icon.32x32" size="32" scale="1" />
      <bt:Image resid="Icon.32x32" size="32" scale="2" />
      <bt:Image resid="Icon.32x32" size="32" scale="3" />
      <bt:Image resid="Icon.80x80" size="48" scale="1" />
      <bt:Image resid="Icon.80x80" size="48" scale="2" />
      <bt:Image resid="Icon.80x80" size="48" scale="3" />
    </Icon>
    <Action xsi:type="ExecuteFunction">
      <FunctionName>logToCRM</FunctionName>
    </Action>
  </Control>
</ExtensionPoint>

Events

この拡張点は、指定したイベントのイベント ハンドラーを追加します。 この拡張ポイントの使用方法の詳細については、「 Outlook アドインの送信時機能」を参照してください。

重要

この拡張ポイントでは、 MailboxItemevents を登録できません。

注:

スマート アラートは送信時機能の新しいバージョンであり、 LaunchEvent 拡張ポイント を使用してアドインでイベントのアクティブ化を有効にします。 スマート アラートとオン送信機能の主な違いの詳細については、「 スマート アラートとオン送信機能の違い」を参照してください。 チュートリアルを完了して、スマート アラートを試してみることをお勧めします。

要素 説明
Event イベントとイベント ハンドラーの関数を指定します。

ItemSend イベントの例

<ExtensionPoint xsi:type="Events">
  <Event Type="ItemSend" FunctionExecution="synchronous" FunctionName="itemSendHandler" />
</ExtensionPoint>

DetectedEntity

この拡張点は、指定したエンティティの種類に対するコンテキスト アドインのアクティブ化を追加します。 この拡張ポイントの使用方法の詳細については、「 Outlook のコンテキスト アドイン」を参照してください。

重要

エンティティベースのコンテキスト Outlook アドインは廃止されました。 代替ソリューションとして、コンテキスト アドインに正規表現ルールを実装します。 これらのルールの実装方法のガイダンスについては、「 Outlook のコンテキスト アドイン」を参照してください。

この VersionOverrides 要素の xsi:type 属性値には VersionOverridesV1_1 が必要です。

注:

要素 説明
Label アドインのコンテキスト ウィンドウのラベルを指定します。
SourceLocation コンテキスト ウィンドウの URL を指定します。
Rule アドインをアクティブ化するタイミングを決定する 1 つ以上のルールを指定します。

Label

必ず指定します。 グループのラベルです。 resid 属性は 32 文字以内で入力でき、Resources 要素の <ShortStrings> 要素の <String> 要素の id 属性の値に設定する必要があります。

強調表示の要件

ユーザーは、強調表示されたエンティティに対話型の操作を実行する方法でのみコンテキスト アドインを有効化できます。 開発者は、ItemHasRegularExpressionMatchルール タイプの <Rule> 要素の Highlight 属性を使用して、どのエンティティを強調表示するかを制御できます。

ただし、注意する必要のある制限があります。 これらの制限は、ユーザーにアドインをアクティブ化する方法を提供するために、適用可能なメッセージや予定で強調表示されたエンティティが常に存在するようにするために実施されます。

  • 単一のルールを使用する場合、 ハイライト 属性は all に設定する必要があります。
  • Mode="And"で複数のルールを組み合わせるRuleCollectionルール タイプを使用する場合、少なくとも 1 つのルールでハイライト属性を all に設定する必要があります。
  • RuleCollection ルール タイプと Mode="Or" を使用して複数のルールを組み合わせる場合、すべてのルールの Highlight 属性を all に設定する必要があります。

DetectedEntity イベントの例

<ExtensionPoint xsi:type="DetectedEntity">
  <Label resid="Context.Label"/>
  <SourceLocation resid="DetectedEntity.URL" />
  <Rule xsi:type="RuleCollection" Mode="And">
    <Rule xsi:type="ItemIs" ItemType="Message"/>
    <Rule xsi:type="ItemHasRegularExpressionMatch" RegExName="videoURL" RegExValue="http://www\.youtube\.com/watch\?v=[a-zA-Z0-9_-]{11}" PropertyName="BodyAsPlaintext"/>
  </Rule>
</ExtensionPoint>

ReportPhishingCommandSurface

この拡張ポイントは、Outlook リボンのスパム報告アドインをアクティブにし、アドインがリボンの末尾またはオーバーフロー メニューに表示されないようにします。

アドインにスパム報告機能を実装する方法の詳細については、「 統合されたスパム報告アドインを実装する」を参照してください。

子要素

要素 説明
ReportPhishingCustomization 要素 スパム報告アドインのリボン ボタンと前処理ダイアログを構成します。

<ExtensionPoint xsi:type="ReportPhishingCommandSurface">
  <ReportPhishingCustomization>
    <!-- Configures the ribbon button. -->
    <Control xsi:type="Button" id="ReportingButton">
      <Label resid="ReportingButton.Label"/>
      <Supertip>
        <Title resid="ReportingButton.Label"/>
        <Description resid="ReportingButton.Description"/>
      </Supertip>
      <Icon>
        <bt:Image size="16" resid="Icon.16x16"/>
        <bt:Image size="32" resid="Icon.32x32"/>
        <bt:Image size="64" resid="Icon.64x64"/>
        <bt:Image size="80" resid="Icon.80x80"/>
      </Icon>
      <Action xsi:type="ExecuteFunction">
        <FunctionName>onMessageReport</FunctionName>
      </Action>
    </Control>
    <!-- Configures the preprocessing dialog. -->
    <PreProcessingDialog>
      <Title resid="PreProcessingDialog.Label"/>
      <Description resid="PreProcessingDialog.Description"/>
      <ReportingOptions>
        <Title resid="OptionsTitle.Label"/>
        <Option resid="Option1.Label"/>
        <Option resid="Option2.Label"/>
        <Option resid="Option3.Label"/>
        <Option resid="Option4.Label"/>
      </ReportingOptions>
      <FreeTextLabel resid="FreeText.Label"/>
      <MoreInfo>
        <MoreInfoText resid="MoreInfo.Label"/>
        <MoreInfoUrl resid="MoreInfo.Url"/>
      </MoreInfo>
    </PreProcessingDialog>
    <SourceLocation resid="Commands.Url"/>
  </ReportPhishingCustomization>
</ExtensionPoint>