ExtensionPoint 要素

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

アドインの種類: 作業ウィンドウ、メール

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

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

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

属性

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

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

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

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

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

PrimaryCommandSurface

Word、Excel、PowerPoint、OneNote の主要なコマンド 画面はリボンです。

子要素

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

重要

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

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

重要

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>
      <Tooltip resid="residToolTip" />
      <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

次に、Excel スプレッドシートのセルにカスタム コンテキスト メニューを追加します。

<ExtensionPoint xsi:type="ContextMenu">
  <OfficeMenu id="ContextMenuCell">
    <Control xsi:type="Menu" id="Contoso.ContextMenu2">
            <!-- information about the control -->
    </Control>
    <!-- other controls, as needed -->
  </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

この拡張点は、モジュール拡張機能用のリボンにボタンを配置します。

重要

メールボックスアイテムのイベントの登録は、この拡張機能ポイントでは使用できません。

子要素

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

MobileMessageReadCommandSurface

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

子要素

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

この型の ExtensionPoint> 要素には、Group 要素という 1 つの子要素のみを含めることができます。<<>

この拡張ポイントに含まれるコントロール>要素には、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 モバイル アドインを作成する」を参照してください。

注:

この拡張機能ポイントは、Microsoft 365 サブスクリプションを使用した Android および iOS でのみサポートされています。

メールボックスアイテムのイベントの登録は、この拡張機能ポイントでは使用できません。

子要素

要素 説明
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 モバイル アドインで外部アプリケーションに予定メモを記録する」を参照してください。

注:

この拡張機能ポイントは、Microsoft 365 サブスクリプションを使用した Android および iOS でのみサポートされています。

メールボックスアイテムのイベントの登録は、この拡張機能ポイントでは使用できません。

子要素

要素 説明
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>

LaunchEvent

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

重要

メールボックスアイテムのイベントの登録は、この拡張機能ポイントでは使用できません。

子要素

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

<ExtensionPoint xsi:type="LaunchEvent">
  <LaunchEvents>
    <LaunchEvent Type="OnNewMessageCompose" FunctionName="onMessageComposeHandler"/>
    <LaunchEvent Type="OnNewAppointmentOrganizer" FunctionName="onAppointmentComposeHandler"/>
  </LaunchEvents>
  <!-- Identifies the runtime to be used (also referenced by the Runtime element). -->
  <SourceLocation resid="WebViewRuntime.Url"/>
</ExtensionPoint>

Events

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

重要

メールボックスアイテムのイベントの登録は、この拡張機能ポイントでは使用できません。

注:

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

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

ItemSend イベントの例

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

DetectedEntity

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

重要

エンティティベースのコンテキスト Outlook アドインは、2024 年第 2 四半期に廃止される予定です。 この機能を廃止する作業は 5 月に開始され、6 月末まで継続されます。 6 月以降、コンテキスト アドインはメール アイテム内のエンティティを検出してタスクを実行できなくなります。 次の API も廃止されます。

中断の可能性を最小限に抑えるために、エンティティ ベースのコンテキスト アドインが廃止された後も、次の機能がサポートされます。

  • オンライン会議アドインによってアクティブ化される [会議に参加 ] ボタンの代替実装が開発されています。 エンティティベースのコンテキスト アドインのサポートが終了すると、オンライン会議アドインは自動的に別の実装に移行して [ 会議に参加 ] ボタンをアクティブ化します。
  • エンティティ ベースのコンテキスト アドインが廃止された後も、正規表現ルールは引き続きサポートされます。 代替ソリューションとして正規表現ルールを使用するように、コンテキスト アドインを更新することをお勧めします。 これらのルールを実装する方法のガイダンスについては、「 正規表現アクティブ化ルールを使用して Outlook アドインを表示する」を参照してください。

詳細については、「 エンティティ ベースのコンテキスト Outlook アドインの廃止」を参照してください。

VersionOverrides 要素を含むには、 の xsi:type 属性値VersionOverridesV1_1が必要です。

注:

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

Label

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

強調表示の要件

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

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

  • EmailAddress および Url のエンティティの種類は、強調表示できません。そのため、アドインをアクティブ化するためには使用できません。
  • 1 つのルールを使用する場合は、 Highlight 属性を に設定する all必要があります。
  • と を RuleCollection 使用して複数のルール Mode="AND" を結合する場合、少なくとも 1 つのルールで Highlight 属性が に all設定されている必要があります。
  • と を RuleCollection 使用して複数のルール Mode="OR" を結合する場合、すべてのルールで Highlight 属性が に設定されている all必要があります。

DetectedEntity イベントの例

<ExtensionPoint xsi:type="DetectedEntity">
  <Label resid="residLabelName"/>
  <!--If you opt to include RequestedHeight, it must be between 140px to 450px, inclusive.-->
  <!--<RequestedHeight>360</RequestedHeight>-->
  <SourceLocation resid="residDetectedEntityURL" />
  <Rule xsi:type="RuleCollection" Mode="And">
    <Rule xsi:type="ItemIs" ItemType="Message" />
    <Rule xsi:type="ItemHasKnownEntity" EntityType="MeetingSuggestion" Highlight="all" />
    <Rule xsi:type="ItemHasKnownEntity" EntityType="Address" Highlight="none" />
  </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>