Google Apps Script

【初心者向け】Browser.inputBoxの使い方を徹底解説|GASで手軽にダイアログ表示&入力を取得する方法

スポンサーリンク

Google Apps Script(GAS)で手軽にユーザーからの入力を受け取れる方法として、「Browser.inputBox()」があります。
この記事では、GAS初心者でもわかるように、Browser.inputBoxの基本的な使い方から、ui.promptとの違い、戻り値の扱い、エラー対策までを徹底解説します。

なお、ui.prompt()の使い方について詳しく知りたい方は、以下の記事も参考にしてください。

なぜBrowser.inputBoxを使うのか?

GASにおけるユーザー入力の重要性

GASでは、スクリプト実行中にユーザーに入力や確認を求める場面が多くあります。
たとえば、「名前や数値を手入力して処理を実行する」「任意の文字列を受け取って次のステップに進める」といったケースです。

こうした場面では、手軽に入力ダイアログを表示できる Browser.inputBox() の活用が非常に便利です。
※なお、「この処理を実行しても良いか」など、入力を伴わない単純な確認だけの場合は、Browser.msgBox()ui.alert() などのほうが適しています。

Browser.inputBoxの主な用途とメリット

Browser.inputBox()は、非常にシンプルなダイアログボックスを表示し、ユーザーから文字列の入力を取得することができます。
コードも数行で書けるため、手軽に導入できます。

スタンドアロンスクリプトで使える強み

最大の特徴は、スプレッドシートやドキュメントにバインドされていない”スタンドアロンスクリプト”でも動作することです。
これは、SpreadsheetApp.getUi() や DocumentApp.getUi() を使う ui.prompt にはない利点です。

Browser.inputBoxとui.promptの違いと使い分け

どちらもダイアログを表示できるが対応環境が異なる

  • Browser.inputBox(): スタンドアロンスクリプトでも使用可能
  • ui.prompt(): スプレッドシートやドキュメント、フォームなどのコンテナバインド型スクリプトでのみ使用可能

返り値の扱いの違い

  • Browser.inputBox(): 戻り値は文字列(例: “田中”)
  • ui.prompt(): PromptResponseオブジェクトが返る(getResponseText()などで取得)

使い分けの判断ポイント

  • スタンドアロンスクリプトでも使いたい場合Browser.inputBox()
  • Googleドキュメントやスプレッドシート、GoogleフォームなどのUIに組み込みたい場合ui.prompt()

Browser.inputBox() は、コンテナに依存せずあらゆるGAS環境で使える簡易ダイアログです。初心者でも扱いやすく、入力を受け取りたい処理に手軽に組み込めます。

一方 ui.prompt() は、GoogleのUIを持つコンテナ(ドキュメント、スプレッドシート、フォームなど)にバインドされたスクリプトでのみ使えます。ボタン操作と入力値を分離して処理したいときや、UIイベントと連携したダイアログが必要な場面に適しています。

【基本構文】Browser.inputBoxの書き方と引数の種類

最もシンプルな形式(promptのみ)

function sample() {
  const res = Browser.inputBox("名前を入力してください");
  Logger.log(res);
}

ボタンを指定する形式(prompt + buttons)

function sample() {
  const res = Browser.inputBox("担当者名を入力してください", Browser.Buttons.OK_CANCEL);
  Logger.log(res);
}

タイトル付きの形式(title + prompt + buttons)

function sample() {
  const res = Browser.inputBox("担当者入力", "処理を実行する担当者の名前を入力してください。", Browser.Buttons.YES_NO_CANCEL);
  Logger.log(res);
}

使用できるボタンセット一覧

  • Browser.Buttons.OK
  • Browser.Buttons.OK_CANCEL
  • Browser.Buttons.YES_NO
  • Browser.Buttons.YES_NO_CANCEL

【ケース別】サンプルコードと戻り値の違い

OKボタンのみのダイアログ(名前の入力)

function sampleOkOnly() {
  const res = Browser.inputBox("名前を入力してください");
  Logger.log("入力値:" + res);
}

戻り値:文字列 または “cancel”

OKとキャンセルの2択(メールアドレスの入力)

function sampleOkCancel() {
  const res = Browser.inputBox("メールアドレスを入力してください", Browser.Buttons.OK_CANCEL);
  Logger.log("入力または操作結果:" + res);
}

戻り値:文字列 または “cancel”

はい・いいえの選択肢(好きな食べ物の入力)

function sampleYesNo() {
  const res = Browser.inputBox("好きな食べ物を入力してください", Browser.Buttons.YES_NO);
  Logger.log("入力または操作結果:" + res);
}

戻り値:””(いいえ)または 入力値(はい)または “cancel”

はい・いいえ・キャンセルの3択(希望する日程の入力)

function sampleYesNoCancel() {
  const res = Browser.inputBox("希望する日程を入力してください", Browser.Buttons.YES_NO_CANCEL);
  Logger.log("入力または操作結果:" + res);
}

戻り値:””(いいえ)/ 入力値(はい)/ “cancel”

タイトル付きの例(プロジェクト名の入力)

function sampleWithTitle() {
  const res = Browser.inputBox("確認", "新しいプロジェクト名を入力してください", Browser.Buttons.OK_CANCEL);
  Logger.log("入力または操作結果:" + res);
}

戻り値:文字列 または “cancel”

戻り値の扱い方と注意点

OKが押されたときの戻り値

入力された文字列がそのまま返ります。

キャンセルや×ボタンを押したとき

戻り値は”cancel”。明示的に res === "cancel" で比較しましょう。

「いいえ」は空文字

YES_NO系のボタンで「いいえ」を押すと、戻り値は””(空文字)。”cancel”と明確に区別する必要があります。

空白チェックの実装例

if (res === "") {
  Browser.msgBox("入力が空白です。再入力してください。");
  return;
}

よくある質問(FAQ)

Q
スタンドアロンスクリプトでも使えますか?
A

はい、Browser.inputBoxはスタンドアロン環境でも動作します。

Q
「いいえ」ボタンを押したときの戻り値は?
A

空文字(””)です。”cancel”(キャンセルや×)とは区別してください。

Q
入力欄に初期値を設定できますか?
A

いいえ、Browser.inputBoxには初期値を指定する機能はありません。

Q
キャンセルと「×」の違いは?
A

どちらも戻り値は”cancel”で同じです。

Q
改行を入れたいときは?
A

メッセージ文字列に’\n’を入れることで改行できます。一部のブラウザでは改行が反映されにくい場合もあります。

まとめ

Browser.inputBox()は、GASで簡単な入力処理や確認をしたいときに非常に便利なメソッドです。
特に、スプレッドシートやドキュメントにバインドされていないスタンドアロンスクリプトでも動作するという点が大きな魅力です。

構文もシンプルで導入しやすく、ボタンごとの戻り値の違いさえ理解しておけば、実務でも安心して活用できます。

より高度なUI制御が必要な場面ではui.prompt()との使い分けを意識し、GASスクリプトをより実用的にしていきましょう。

タイトルとURLをコピーしました