Googleドキュメントやスプレッドシートを使っているとき、ちょっとした文字列を「Google Apps Script」に送りたいことがあります。
例えば、ドキュメントをエクスポートするタイミングでファイル名を入力したい、というケース。
そういう時に、入力するテキストボックスみたいなのが出てくると便利ですよね。
言い方は色々あり、インプットボックス、プロンプト、ダイアログ、などなど。
それを出すには、JavaScriptであれば「prompt()」、Pythonであれば「input()」を使いますが、じゃあ「Google Apps Script」なら?
その方法をまとめました。
スプレッドシートの場合
「Browser.inputBox()」を使うのが簡単です。
入力した文字列が戻り値として返ってきます。
function test() { var a = Browser.inputBox('何か入力してください') console.log(a); }
これを実行すると、スプレッドシートの画面に次のようなボックスが現れます。
ここに入力した文字列が「Google Apps Script」で使えるというわけ。
ちなみに「Browser.inputBox()」を使う方法は、スプレッドシートのみです。
詳細は、Browser.inputBox()の公式リファレンスをご覧ください。
ドキュメントの場合
ドキュメントアプリに対して「.getUi().prompt()」を使います。
入力した内容は「.getResponseText()」で取得できます。
function test() { var a = DocumentApp.getUi().prompt('何か入力してください').getResponseText(); console.log(a); }
入力した文字列は「Google Apps Script」の変数へ。
この方法は、スプレッドシートアプリに対しても使えますし、もしかしたら他のGoogleアプリでも使えるかもしれません。
prompt()の詳細は、公式リファレンスをご覧ください。
まとめ
「Google Apps Script」でインプットボックスを使うには、「Browser.inputBox()」や「.getUi().prompt()」を使います。
「.getUi().prompt()」はドキュメントでもスプレッドシートでも使えるので、とりあえずこちらを覚えるのが良いでしょう。