見出し画像

【GAS】Googleスプレッドシートでプロンプトを表示する

こんにちは!KCompany代表のケータです!

本日は【そのまま使える】Google Classroom APIを使ってGoogleクラスルームの情報を取得しスプレッドシートに書き出すGASの中でも使いました、プロンプトについてです。

UiクラスとPromptメソッド

プロンプトを表示するには、UiクラスにあるPromptメソッドを用います。

今回はタイトルとプロンプト内のメッセージ、そしてボタンを引数にしたこちらのメソッドを使いました。

ButtonSet型を指定して、OKだけだったり、YES/NOとかにすることができます。

実際のコード

下記のようにしてみました。
createAnnouncementsList関数で入力されたIDを元にストリーム情報を取得してスプレッドシートへの書き込みを行っています。

// クラスルームIDを入力させる
function inputClassroomId(){
 const ui = SpreadsheetApp.getUi();

 // 表示メッセージ
 const title       = 'クラスルームID入力';
 const prompt      = 'IDを入力してください';
 const resultText1 = 'Googleクラスルームのストリーム情報の取得をしました';
 const alertText1  = '1以上の整数値を入力してください';

 // プロンプト表示&入力受付
 const response = ui.prompt(title, prompt, ui.ButtonSet.OK_CANCEL);
 const id = Number(response.getResponseText());

 // 入力された値が数値で1以上なら結果を表示する
 switch(response.getSelectedButton()){
 case ui.Button.OK:
 if((Number.isInteger(id) === true) && (id > 0)){
   createAnnouncementsList(id); // ストリーム情報取得
   SpreadsheetApp.getUi().alert(resultText1);
 }else{
   SpreadsheetApp.getUi().alert(alertText1);
 }
 break;
 case ui.Button.CANCEL:
 Logger.log('番号を取得できませんでした');
 break;
 case ui.Button.CLOSE:
 Logger.log('閉じるボタンで閉じられました');
 break;
 }
}

Uiクラスを使うことで、色々とUIフレンドリーなGASを作れるなと改めてライブラリを眺めて思いました。

Uiクラスのメソッドを色々試した【そのまま使える】シリーズのGASを公開するのもよいかなと思いました。近いうちにやりたいと思います!

本日は以上になります!それでは。

【お仕事のご依頼について】

こちらの記事に記載した内容以外にも、Google Apps Script開発やGoogle Workspaceを活用したデジタル化推進のお仕事を行っています。【GAS】そのまま使えるシリーズのカスタマイズのご相談ももちろん大丈夫です。
ちょっとしたお困りごとでも、こちらのサイトのお問い合わせフォームからご連絡いただければ、折り返しご連絡いたします。

よろしければサポートをお願いします!いただいたサポートは、サービス開発・改善のために使わせていただきます。主に書籍代や勉強会の参加費用などを想定しています。よろしくお願いします。