メッセージを操作する

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

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

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

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

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

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

prompt(title,prompt,buttons)の戻り値

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

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

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

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

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

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

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

-メッセージを操作する