メッセージを操作する

【GAS】スプレッドシートの入力ボックスにボタンを作成する

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()

ユーザーがダイアログの入力フィールドに入力したテキストを取得します。ユーザーは、否定的な意味を持つボタン(「キャンセル」など)をクリックしてダイアログを閉じた場合でも、ダイアログのタイトルバーにある閉じるボタンをクリックした場合でも、テキストを使用できます。getSelectedButton() を使用すると、ユーザーがレスポンス テキストの使用を意図したものかどうかを判断できます。

https://developers.google.com/apps-script/reference/base/prompt-response#getresponsetext

注意点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)のパラメーター

名前説明
promptStringダイアログ ボックスに表示するメッセージ。
buttonsButtonSetダイアログ ボックスの表示を設定するボタン。
prompt(prompt, buttons)のパラメーター

prompt(prompt, buttons)の戻り値

PromptResponse - ユーザーのレスポンスを表します。

スプレッドシートの入力ボックスにボタンを作成するまとめ

GAS×スプレッドシートの入力ボックスにボタンを作成するならprompt(prompt, buttons)メソッドを利用しましょう。

関連記事:【GAS】スプレッドシートの文字を折り返す

関連記事:【GAS】スプレッドシートの文字の折返しを配列で設定する

関連記事:【GAS】スプレッドシートの文字の折返し方法を設定する

関連記事:【GAS】スプレッドシートの文字を斜めにする

-メッセージを操作する