Browser.msgBoxって何?処理前に“確認”したい時のGAS小技

GASで確認メッセージを表示したいときに使える「Browser.msgBox」です。
私自身が独学中に「処理していいか確認したい」「完了したことを伝えたい」と思ったときによく使っています。
ただし、スマホでは表示されないという落とし穴も。この記事ではその使い方と注意点、スマホ対応の代替案まで実体験ベースで紹介します。

このブログは、Google Apps Script(GAS)を使った自作ツールの記録や、開発の過程での気づきをまとめたものです。
丁寧な解説というより、「こんなこともGASでできるんだ」というアイディアのきっかけになれば幸いです。

Browser.msgBoxとは?

GASでポップアップのようにメッセージを表示したり、ユーザーに「OK」「キャンセル」などの操作を求めるための関数です。
PCのスプレッドシートからスクリプトを実行する際に便利です。

▼ 例:処理前に「続行しますか?」と聞く

var response = Browser.msgBox(
  'この処理を実行します。続けますか?',
  Browser.Buttons.YES_NO
);

if (response == 'yes') {
  // 実行処理
} else {
  // キャンセル処理
}

実際に使っている例

1. 処理スタート前の確認

いきなり実行して思わぬ事故になるのを防ぐため、最初に実行するか聞いてます。

var ans = Browser.msgBox(
  'この処理はデータを更新します。本当に実行しますか?',
  Browser.Buttons.OK_CANCEL
);
if (ans === 'cancel') return;

2. 処理対象件数の確認

スプレッドシートのA列にデータが100件あると想定して実行しようとしたが、うっかり50件だけしか選択してなく処理…というミスを防ぎます。

var count = sheet.getRange("A2:A")
  .getValues()
  .filter(String).length;

var ans = Browser.msgBox(
  '処理対象は' + count + '件です。処理を開始しますか?',
  Browser.Buttons.YES_NO
);
if (ans !== 'yes') return;

3. 処理完了の通知

GASは処理が終わったタイミングがわかりにくいので、終了報告を表示させます。

Browser.msgBox('完了しました。' + count + '件を処理しました。');

スマホでは使えない注意点

Browser.msgBoxはPCからの手動実行時にしか表示されません。
Webアプリ経由やスマホ、タブレットでは一切表示されないので注意が必要です。

スマホ対応の代替方法

セルにメッセージを貼り付けることで、Browser.msgBoxの代わりにメッセージを表示させることが出来ます。

sheet.getRange("B1").setValue('処理を開始します...');

こういった工夫で、スマホからでも視覚的に処理の確認・進捗を伝えることができます。

まとめ

GASで確認や通知を行う方法として、Browser.msgBoxはとても手軽で便利です。特に、処理を開始する前に「本当に実行していいのか?」をユーザーに確認したいとき、処理が完了したことを明示的に伝えたいときに重宝します。

ただし、この機能はPCブラウザからの手動実行限定という大きな制限があります。Webアプリ化したものやスマホからの実行ではメッセージが一切表示されないため、表示されることを前提にした設計はトラブルの元になります。

実際、私もスマホで確認メッセージが出ないことに気づかず処理を実行してしまい、意図しないデータ変更をしたことがあります。そうした経験から、今ではセルやチェックボックスを使って事前確認や完了通知を代替するようにしています。

まとめると

  • Browser.msgBoxは確認や通知にとても便利
  • PC上でのみ使えるためスマホ・Webアプリでは非表示
  • スマホ対応したい場合はセルやチェックボックスで工夫するのが安心
  • 動作環境に応じてメッセージの出し方を変える設計が大事

初心者のうちは「表示されると思っていたのに出ない」といったことが起きやすいですが、それも含めて試行錯誤です。小さなつまずきから学びながら、自分なりの便利な使い方を見つけていければ十分だと思います。

トップページへ戻る