このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

Office用アプリではalertやconfirmが使えない?(Officeスクリプト)

JavaScriptでメッセージや確認ダイアログを表示する際には「alert」や「confirm」が使われます。

Officeスクリプトでも同様に、メッセージが表示できるか試したのですが、どうも「できない」ようです。

下記のようなスクリプトを作ってみたのですが、エラーで実行することはできません。

function main(workbook: ExcelScript.Workbook) {
    window.alert("aaa");
    window.confirm("bbb");
}

Microsoftのドキュメントに使用できるJavaScriptオブジェクトへのリンクが貼ってあるのですが、こちらにもwindowオブジェクトは含まれておりません。

つまり、OfficeスクリプトではJavaScriptのようにメッセージの表示ができないのですが、ないと困りますよね。

そのため、メッセージの代わりとして、シート上に図形を表示させる方法を紹介しようと思います。
汎用的な関数にまとめたので、活用してみてください。

メッセージを図形で表示させる方法

function main(workbook: ExcelScript.Workbook) {

    // メインの処理
    // ~ここにメインの処理を書く~

    // 終了メッセージの作成
    Show_Msg(workbook, "処理が完了しました");
}

function Show_Msg(workbook: ExcelScript.Workbook, msg: string) {

    // ワークシートを取得
    const sht = workbook.getActiveWorksheet();

    // 図形の作成と位置調整
    const shp: ExcelScript.Shape = sht.addTextBox(msg);
    shp.setLeft(1);
    shp.setTop(1);
    shp.setWidth(500);
    shp.setHeight(100);

// テキストを中央揃えに
    const txt_frame = shp.getTextFrame();
    txt_frame.setHorizontalAlignment(ExcelScript.ShapeTextHorizontalAlignment.center);
    txt_frame.setVerticalAlignment(ExcelScript.ShapeTextVerticalAlignment.middle);
}

このスクリプトを実行すると、ワークシート上に「処理が完了しました」と書かれた図形が作成されます。

図形を作成しているのは後半のShow_Msgという関数です。

Show_End_Msg(workbook, 表示したいメッセージ); と書けば簡単に呼び出せるので活用してみてください。