GASでスプレッドシートの入力ボックスにタイトルとボタンを作成するには「prompt(title,prompt,buttons)
」を利用する。
prompt(title,prompt,buttons)
ユーザーのエディタで、指定されたタイトル、メッセージ、ボタンセットを含む入力ダイアログ ボックスを開きます。このメソッドは、ダイアログが開いている間、サーバー側のスクリプトを停止します。ユーザーがダイアログを閉じるとスクリプトが再開されますが、Jdbc 接続と LockService ロックは中断後も持続しません。詳細については、ダイアログとサイドバーのガイドをご覧ください。
https://developers.google.com/apps-script/reference/base/ui#prompttitle,-prompt,-buttons
スプレッドシートの入力ボックスにタイトルとボタンを作成するGAS実行の様子
prompt(title,prompt,buttons) メソッドを利用して、スプレッドシートの入力ボックスにタイトルとボタンを作成するGASを実行してみました。
prompt(title,prompt,buttons)を実行することで、
- ブラウザ上にタイトルと入力ボックス・実行ボタンを作成する
といった操作が可能です。
注意点1. prompt(title,prompt,buttons)は.getResponseText()で値を取得する
注意点としてprompt(title,prompt,buttons)メソッドで取得した値は、getResponseText()で取得する必要があります。
getResponseText()
ユーザーがダイアログの入力フィールドに入力したテキストを取得します。ユーザーは、否定的な意味を持つボタン(「キャンセル」など)をクリックしてダイアログを閉じた場合でも、ダイアログのタイトルバーにある閉じるボタンをクリックした場合でも、テキストを使用できます。
https://developers.google.com/apps-script/reference/base/prompt-response#getresponsetextgetSelectedButton()
を使用すると、ユーザーがレスポンス テキストの使用を意図したものかどうかを判断できます。
注意点2. prompt(title,prompt,buttons)のボタン値取得はgetSelectedButton()を使う
注意点としてprompt(title,prompt,buttons)メソッドで作成されたボタンの値を取得するには、getResponseText()を使用します。
getSelectedButton()
ユーザーがダイアログを閉じるためにクリックしたボタンを取得します。ユーザーがすべてのダイアログ タイトル バーに含まれている閉じるボタンをクリックした場合、このメソッドは Button.CLOSE を返します。
https://developers.google.com/apps-script/reference/base/prompt-response#getselectedbutton
スプレッドシートに入力ボックスを表示する場合は、以下記事を御覧ください。
参照記事:【GAS】スプレッドシートに入力ボックスを表示する
スプレッドシートの入力ボックスにタイトルとボタンを作成するGAS
//--入力ボックスにタイトルとボタンを設置する--
function titlebtnform(){
//SpreadsheetAppを起動してuiを取得
let ui = SpreadsheetApp.getUi();
//■promptを起動してタイトル、メッセージ、ボタンを作成・設置
//promptの値を変数resに格納
let res = ui.prompt("入力ボックスだよ!","何か入力してね!",ui.ButtonSet.YES_NO_CANCEL);
//変数resの値を変数textに格納
let text = res.getResponseText();
//promptのボタンの値を変数btnvalに格納
let btnval = res.getSelectedButton();
//もしボタンの入力値がYESなら
if(btnval == ui.Button.YES){
//入力値の値textを掲載する
ui.alert("入力値は「"+text+"」だぜ!");
//ボタンの入力値がキャンセルなら
}else if(btnval == ui.Button.CANCEL){
//キャンセルした旨を掲載
ui.alert("キャンセルしたぜ!");
//いいえなら
}else{
//いいえの旨を掲載
ui.alert("いいえになったぜ!");
}
}
prompt(title,prompt,buttons)のパラメーター
名前 | 型 | 説明 |
---|---|---|
title | String | ダイアログボックスの上に表示するタイトル。 |
prompt | String | ダイアログボックスに表示するメッセージ。 |
buttons | ButtonSet | ダイアログ ボックスの表示を設定するボタン。 |
prompt(title,prompt,buttons)の戻り値
PromptResponse - ユーザーのレスポンスを表します。
スプレッドシートの入力ボックスにタイトルとボタンを作成するまとめ
GAS×スプレッドシートの入力ボックスにタイトルとボタンを作成するならprompt(title,prompt,buttons)
メソッドを利用しましょう。
関連記事:【GAS】スプレッドシートの文字の折返しを配列で設定する