Office.UI interface

Office アドインでダイアログ ボックスなどの UI コンポーネントを作成および操作するためのオブジェクトとメソッドを提供します。

ダイアログ ボックスの構成方法の詳細については、「 Office アドインでダイアログ API を使用する」を参照してください。

注釈

使用元

// Get an Office.UI object and use it to open a dialog with a specified size. 
const uiContext = Office.context.ui;
uiContext.displayDialogAsync("https://www.contoso.com/myDialog.html", { height: 30, width: 20 });

メソッド

addHandlerAsync(eventType, handler, options, callback)

指定されたイベントの種類を使用して、オブジェクトにイベント ハンドラーを追加します。

addHandlerAsync(eventType, handler, callback)

指定されたイベントの種類を使用して、オブジェクトにイベント ハンドラーを追加します。

closeContainer()

JavaScript が実行されている UI コンテナーを閉じます。

displayDialogAsync(startAddress, options, callback)

ユーザーからの情報を表示または収集したり、Web ナビゲーションを容易にしたりするためのダイアログを表示します。

displayDialogAsync(startAddress, callback)

ユーザーからの情報を表示または収集したり、Web ナビゲーションを容易にしたりするためのダイアログを表示します。

messageParent(message, messageOptions)

メッセージをダイアログ ボックスからその親/オープナー ページに配信します。

openBrowserWindow(url)

ブラウザー ウィンドウを開き、指定した URL を読み込みます。

メソッドの詳細

addHandlerAsync(eventType, handler, options, callback)

指定されたイベントの種類を使用して、オブジェクトにイベント ハンドラーを追加します。

addHandlerAsync(eventType: Office.EventType, handler: (result: DialogParentMessageReceivedEventArgs) => void, options: Office.AsyncContextOptions, callback?: (result: AsyncResult<void>) => void): void;

パラメーター

eventType
Office.EventType

追加するイベントの種類を指定します。 これは Office.EventType.DialogParentMessageReceived必要があります。

handler

(result: Office.DialogParentMessageReceivedEventArgs) => void

追加するイベント ハンドラー関数。その唯一のパラメーターは Office.DialogParentMessageReceivedEventArgs 型です。

options
Office.AsyncContextOptions

コールバックで使用するために、任意の種類のコンテキスト データを変更されないまま保持するためのオプションを提供します。

callback

(result: Office.AsyncResult<void>) => void

省略可能。 ハンドラー登録が返されたときに呼び出される関数。その唯一のパラメーターは Office.AsyncResult 型です。

返品

void

注釈

要件セット: DialogApi 1.2

指定したイベントの種類に対して、各イベント ハンドラー関数の名前が一意である限り、複数のイベント ハンドラーを追加できます。

addHandlerAsync(eventType, handler, callback)

指定されたイベントの種類を使用して、オブジェクトにイベント ハンドラーを追加します。

addHandlerAsync(eventType: Office.EventType, handler: (result: DialogParentMessageReceivedEventArgs) => void, callback?: (result: AsyncResult<void>) => void): void;

パラメーター

eventType
Office.EventType

追加するイベントの種類を指定します。 これは Office.EventType.DialogParentMessageReceived必要があります。

handler

(result: Office.DialogParentMessageReceivedEventArgs) => void

追加するイベント ハンドラー関数。その唯一のパラメーターは Office.DialogParentMessageReceivedEventArgs 型です。

callback

(result: Office.AsyncResult<void>) => void

省略可能。 ハンドラー登録が返されたときに呼び出される関数。その唯一のパラメーターは Office.AsyncResult 型です。

返品

void

注釈

要件セット: DialogApi 1.2

指定したイベントの種類に対して、各イベント ハンドラー関数の名前が一意である限り、複数のイベント ハンドラーを追加できます。

// The following example shows how to add an event handler for the DialogParentMessageReceived event.
Office.onReady(() => {
    Office.context.ui.addHandlerAsync(
        Office.EventType.DialogParentMessageReceived,
        onMessageFromParent,
        onRegisterMessageComplete
    );
});

function onMessageFromParent(arg) {
    const messageFromParent = JSON.parse(arg.message);
    document.querySelector('h1').textContent = messageFromParent.name;
}

function onRegisterMessageComplete(asyncResult) {
    if (asyncResult.status === Office.AsyncResultStatus.Failed) {
        console.log(asyncResult.error.message);
        return;
    }
}

closeContainer()

JavaScript が実行されている UI コンテナーを閉じます。

closeContainer(): void;

返品

void

注釈

アプリケーション: Excel、Outlook (最小要件セット: Mailbox 1.5)、PowerPoint、Word

要件セット:

このメソッドの動作は次のように指定されます。

  • UI を使用しないコマンド ボタンから呼び出された場合: 効果はありません。 displayDialogAsync によって開かれたダイアログは開いたままになります。

  • 作業ウィンドウから呼び出した場合: 作業ウィンドウが閉じます。 displayDialogAsync によって開いたダイアログも閉じます。 作業ウィンドウでピン留めがサポートされており、ユーザーによってピン留めされている場合は、ピン留めは解除されます。

  • モジュール拡張から呼び出されました: 効果はありません。

// The following example shows how to open a browser window to a download page and then close the add-in task pane.
Office.context.ui.openBrowserWindow("https://www.contoso.com/download");
Office.context.ui.closeContainer();

displayDialogAsync(startAddress, options, callback)

ユーザーからの情報を表示または収集したり、Web ナビゲーションを容易にしたりするためのダイアログを表示します。

displayDialogAsync(startAddress: string, options?: DialogOptions, callback?: (result: AsyncResult<Dialog>) => void): void;

パラメーター

startAddress

string

ダイアログで開く最初の完全な HTTPS URL を受け入れます。 相対 URL は使用しないでください。

options
Office.DialogOptions

省略可能。 Office.DialogOptions オブジェクトを受け入れてダイアログの表示を定義します。

callback

(result: Office.AsyncResult<Office.Dialog>) => void

省略可能。 ダイアログの作成試行を処理するコールバック関数を受け入れます。 成功した場合、AsyncResult.value はダイアログ オブジェクトになります。

返品

void

注釈

アプリケーション: Excel、Outlook、PowerPoint、Word

要件セット:

この方法は、Excel、PowerPoint、または Word アドインの DialogApi 要件セットと、Outlook のメールボックス要件セット 1.4 で使用できます。 マニフェストで要件セットを指定する方法の詳細については、アドインのみのマニフェストを使用している場合は、「 Office アプリケーションと API の要件を指定する」を参照してください。 Microsoft 365 の統合マニフェストを使用している場合は、「 Microsoft 365 の統合アプリ マニフェストを含む Office アドイン」を参照してください。

重要:

  • 最初のページは、親ページと同じドメイン上にある必要があります (startAddress パラメーター)。 初期ページが読み込まれた後、他のドメインに移動できます。

  • また、 Office.context.ui.messageParent を呼び出すすべてのページは、親ページと同じドメイン上に存在する必要があります。

  • Office ダイアログ API のルール、制限事項、ベスト プラクティスについては、「Office ダイアログ API のベスト プラクティスとルール」を参照してください

  • エラーとその処理方法については、「 Office ダイアログ ボックスでエラーとイベントを処理する」を参照してください。

  • Windows 上の Outlook on the web および新しい Outlook では、アドインでダイアログを構成するときに window.name プロパティを設定しないでください。 window.name プロパティは、これらの Outlook クライアントがページ リダイレクトをまたいで機能を維持するために使用されます。

  • displayDialogAsync メソッドに渡されるコールバック関数では、AsyncResult オブジェクトのプロパティを使用して次の情報を返すことができます。

プロパティ 使用
AsyncResult.value Dialog オブジェクトにアクセスします。
AsyncResult.status 操作の成功または失敗を判断します。
AsyncResult.error 操作が失敗した場合、エラーに関する情報を提供する Error オブジェクトにアクセスします。
AsyncResult.asyncContext asyncContext パラメーターとして渡した場合、ユーザー定義のオブジェクトまたは値にアクセスします。

// The following example shows how to open a dialog with a specified size. It also shows
// how to register a function to handle the message when Office.UI.messageParent() is called
// in the dialog. The implementation of the processMessage() function is omitted.

Office.context.ui.displayDialogAsync("https://www.contoso.com/myDialog.html", { height: 30, width: 20 },
    (asyncResult) => {
        const dialog = asyncResult.value;
        dialog.addEventHandler(Office.EventType.DialogMessageReceived, (arg) => {
            dialog.close();
            processMessage(arg);
        });
    }
);

// The following example does the same thing in TypeScript.

Office.context.ui.displayDialogAsync("https://www.contoso.com/myDialog.html", { height: 30, width: 20 },
    (asyncResult: Office.AsyncResult) => {
        const dialog: Office.Dialog = asyncResult.value;
        dialog.addEventHandler(Office.EventType.DialogMessageReceived, (arg: string) => {
            dialog.close();
            processMessage(arg);
        });
    }
);

displayDialogAsync(startAddress, callback)

ユーザーからの情報を表示または収集したり、Web ナビゲーションを容易にしたりするためのダイアログを表示します。

displayDialogAsync(startAddress: string, callback?: (result: AsyncResult<Dialog>) => void): void;

パラメーター

startAddress

string

ダイアログで開く最初の完全な HTTPS URL を受け入れます。 相対 URL は使用しないでください。

callback

(result: Office.AsyncResult<Office.Dialog>) => void

省略可能。 ダイアログの作成試行を処理するコールバック関数を受け入れます。 成功した場合、AsyncResult.value はダイアログ オブジェクトになります。

返品

void

注釈

アプリケーション: Excel、Outlook、PowerPoint、Word

要件セット:

この方法は、Excel、PowerPoint、または Word アドインの DialogApi 要件セットと、Outlook のメールボックス要件セット 1.4 で使用できます。 マニフェストで要件セットを指定する方法の詳細については、アドインのみのマニフェストを使用している場合は、「 Office アプリケーションと API の要件を指定する」を参照してください。 Microsoft 365 の統合マニフェストを使用している場合は、「 Microsoft 365 の統合アプリ マニフェストを含む Office アドイン」を参照してください。

重要:

  • 最初のページは、親ページと同じドメイン上にある必要があります (startAddress パラメーター)。 初期ページが読み込まれた後、他のドメインに移動できます。

  • また、 Office.context.ui.messageParent を呼び出すすべてのページは、親ページと同じドメイン上に存在する必要があります。

  • Office ダイアログ API のルール、制限事項、ベスト プラクティスについては、「Office ダイアログ API のベスト プラクティスとルール」を参照してください

  • エラーとその処理方法については、「 Office ダイアログ ボックスでエラーとイベントを処理する」を参照してください。

  • Windows 上の Outlook on the web および新しい Outlook では、アドインでダイアログを構成するときに window.name プロパティを設定しないでください。 window.name プロパティは、これらの Outlook クライアントがページ リダイレクトをまたいで機能を維持するために使用されます。

  • displayDialogAsync メソッドに渡されるコールバック関数では、AsyncResult オブジェクトのプロパティを使用して次の情報を返すことができます。

プロパティ 使用
AsyncResult.value Dialog オブジェクトにアクセスします。
AsyncResult.status 操作の成功または失敗を判断します。
AsyncResult.error 操作が失敗した場合、エラーに関する情報を提供する Error オブジェクトにアクセスします。
AsyncResult.asyncContext asyncContext パラメーターとして渡した場合、ユーザー定義のオブジェクトまたは値にアクセスします。

messageParent(message, messageOptions)

メッセージをダイアログ ボックスからその親/オープナー ページに配信します。

messageParent(message: string, messageOptions?: DialogMessageOptions): void;

パラメーター

message

string

ダイアログからメッセージを受け付け、アドインに配信します。 JSON や XML など、文字列にシリアル化できるものはすべて送信できます。

messageOptions
Office.DialogMessageOptions

省略可能。 メッセージを送信する方法のオプションを指定します。

返品

void

注釈

アプリケーション: Excel、Outlook、PowerPoint、Word

要件セット:

// The following example shows how to send a JSON string to the parent. The profile object
// is returned from some website when a user signs into it.
function userProfileSignedIn(profile) {
    const profileMessage = {
        "name": profile.name,
        "email": profile.email,
    };
    Office.context.ui.messageParent(JSON.stringify(profileMessage));
}

openBrowserWindow(url)

ブラウザー ウィンドウを開き、指定した URL を読み込みます。

openBrowserWindow(url: string): void;

パラメーター

url

string

開く完全な URL。これには、プロトコル (http または https) とポート番号 (存在する場合) が含まれます。 mailto などの他のプロトコルはサポートされていません。

返品

void

注釈

要件セット: OpenBrowserWindowApi 1.1

// The following example shows how to open a browser window to a download page and then close the add-in task pane.
Office.context.ui.openBrowserWindow("https://www.contoso.com/download");
Office.context.ui.closeContainer();