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, 表示したいメッセージ); と書けば簡単に呼び出せるので活用してみてください。