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