Apps Scriptでスクリプトを実行したときに、処理の途中経過やエラー内容を画面上で確認したいと思ったことはありませんか。Googleスプレッドシートのスクリプトエディタでコードを書いていると、変数の値や処理の成否をブラウザ上にポップアップ表示できると便利です。Browser.msgBox関数を使えば、ダイアログボックスを表示してユーザーに情報を伝えたり、確認を促したりできます。この記事では、Browser.msgBoxの基本的な使い方から、ボタンの種類や戻り値の取得方法までを詳しく解説します。
【要点】Browser.msgBoxでスクリプトの状態をブラウザに通知する
- Browser.msgBox(‘メッセージ’) で単純なポップアップ表示: 引数に文字列を渡すだけでOKボタン付きのダイアログを表示します。
- Browser.msgBox(‘タイトル’, ‘メッセージ’, ボタン種類) でボタンを変更: 第三引数に BUTTON_YES_NO など指定して、はい・いいえなどの選択肢を表示できます。
- 戻り値を取得してユーザーの選択を判定: 関数の戻り値として ‘yes’ や ‘no’ などの文字列が返るため、条件分岐に利用できます。
ADVERTISEMENT
目次
Browser.msgBox の基本構文と動作の仕組み
Browser.msgBox は、Googleスプレッドシートの Apps Script で利用できる関数です。スクリプトの実行中にブラウザ上にダイアログボックス(ポップアップウィンドウ)を表示します。この関数は主に、処理のデバッグやユーザーへの確認メッセージの表示に使われます。引数は最大3つまで指定でき、表示するメッセージ、タイトル、ボタンの組み合わせをカスタマイズできます。戻り値として、ユーザーが押したボタンに対応する文字列(‘ok’、’yes’、’no’、’cancel’など)が返ってくるため、その後の処理を分岐させることも可能です。
Browser.msgBox の具体的な使い方と操作手順
ここでは、実際にスクリプトエディタでコードを書いて、Browser.msgBox を動かしてみましょう。以下の手順に沿って進めてください。
手順1: スクリプトエディタを開く
- スプレッドシートを開く
Googleスプレッドシートを開き、メニューから「拡張機能」→「Apps Script」をクリックします。これでスクリプトエディタが開きます。 - プロジェクトを作成する
初めての場合は「新しいプロジェクト」の画面が表示されます。デフォルトのコード.gs ファイルが作成されているので、その中にコードを書いていきます。
手順2: 基本的なmsgBoxのコードを書く
- 関数を定義する
コード.gs に以下のように関数を記述します。ここでは関数名を showMessage としています。
function showMessage() {
Browser.msgBox('こんにちは。これはメッセージボックスです。');
}
- 実行して確認する
エディタ上部の「▶ 実行」ボタンをクリックし、関数を選択して実行します。権限の確認画面が表示されたら、許可を与えてください。すると、ブラウザ上に「こんにちは。これはメッセージボックスです。」と書かれたダイアログが表示されます。OKボタンを押すとダイアログが閉じます。
手順3: タイトルとボタンの種類を指定する
- タイトルを追加する
第一引数にタイトル、第二引数にメッセージを指定できます。例:Browser.msgBox('確認', '本当に実行しますか?'); - ボタンの種類を指定する
第三引数に Browser.Buttons の定数を指定します。代表的なものは以下の通りです。
- Browser.Buttons.OK: 「OK」ボタンのみ(デフォルト)
- Browser.Buttons.OK_CANCEL: 「OK」と「キャンセル」ボタン
- Browser.Buttons.YES_NO: 「はい」と「いいえ」ボタン
- Browser.Buttons.YES_NO_CANCEL: 「はい」「いいえ」「キャンセル」ボタン
例えば、はい・いいえのボタンを表示するには、Browser.msgBox('確認', '続行しますか?', Browser.Buttons.YES_NO); と記述します。
手順4: 戻り値を使って条件分岐する
- 戻り値を変数に代入する
Browser.msgBox の戻り値を変数に格納します。戻り値は押されたボタンに応じた文字列です。
function confirmAction() {
var result = Browser.msgBox('確認', '削除しますか?', Browser.Buttons.YES_NO);
if (result == 'yes') {
// はいが押されたときの処理
Browser.msgBox('削除を実行しました。');
} else {
// いいえが押されたときの処理
Browser.msgBox('削除をキャンセルしました。');
}
}
- 実行して動作を確認する
関数を実行すると、最初に「削除しますか?」のダイアログが表示されます。はいを選べば成功メッセージ、いいえを選べばキャンセルメッセージが表示されます。
Browser.msgBox を使う際の注意点とよくあるトラブル
戻り値の大文字小文字に注意する
戻り値はすべて小文字の文字列です。’yes’、’no’、’ok’、’cancel’ などです。比較するときは必ず小文字で書いてください。大文字で書くと条件が成立しません。
ボタン定数の指定方法が正しくないとエラーになる
Browser.Buttons.YES_NO のように、Browser.Buttons の後ろにドットでつなぎます。スペルミスや大文字小文字の間違いに注意してください。例えば Browser.Buttons.YesNo などと書くとエラーになります。
msgBoxはブラウザ上でのみ動作する
Browser.msgBox はスクリプトがブラウザのコンテキストで実行されるときにのみ表示されます。トリガーによる自動実行や、時間主導型のトリガーでは表示されません。その場合は Logger.log など別の方法を使う必要があります。
複数のmsgBoxを連続して表示すると処理が止まる
msgBox はモーダルダイアログなので、ユーザーがボタンを押すまで次のコードが実行されません。デバッグ用途で連続して表示したい場合は、一つずつ確認しながら進める必要があります。
ADVERTISEMENT
Browser.msgBox と他の表示方法の比較
| 機能 | 表示場所 | ユーザーの操作 | 戻り値の有無 | 自動実行での利用 |
|---|---|---|---|---|
| Browser.msgBox | ブラウザ上のポップアップ | ボタンを押す必要あり | あり(‘ok’など) | 不可 |
| SpreadsheetApp.getUi().alert() | ブラウザ上のポップアップ | ボタンを押す必要あり | あり(‘ok’など) | 不可 |
| Logger.log() | スクリプトエディタのログ | なし | なし | 可 |
| console.log() | ブラウザの開発者ツール | なし | なし | 可 |
Browser.msgBox と SpreadsheetApp.getUi().alert() はほぼ同じ動作をしますが、alert() は Ui インスタンスが必要なため、シンプルな表示には msgBox のほうが便利です。デバッグ用にログを残したいだけなら Logger.log を使うことをおすすめします。
まとめ
Browser.msgBox を使うことで、スクリプトの実行中にブラウザ上で簡単な通知や確認ダイアログを表示できます。基本的な使い方は Browser.msgBox('メッセージ') と書くだけです。ボタンの種類を指定したり、戻り値を取得して条件分岐することも可能です。デバッグの際には一時的に msgBox を挿入して変数の値を確認するのが便利です。ただし、トリガー実行では使えない点に注意してください。本番のスクリプトでは Logger.log や SpreadsheetApp.getUi().alert() も検討するとよいでしょう。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
