見出し画像

【Google Apps Script 通信 vol.6】スクリプト実行前にユーザーに確認しよう!

こんにちは。きゅうりです。

前回のおさらい

前回はボタンからスクリプト実行する方法を学びましたね。

これだけだと間違えてクリックしたときにもスクリプト実行されてしまう…

ということで

実行して良いかユーザーに確認してもらうポップアップを表示しましょう

こんな風にポップアップを表示させて、OKの場合はスクリプトを実行、キャンセルの場合は何もしないように条件分岐させましょう。

無題

条件分岐とは…?な方はこちらの記事も参考にしてください。

サンプルコード

たったこれだけです。

 var result = Browser.msgBox("スクリプトを実行", Browser.Buttons.OK_CANCEL);
 if (result == "ok"){

  // OKの場合に実行するスクリプトを入れる

}

以前に作成したシート名取得のスクリプトに差し込むと、こんな感じになります。冒頭に差し込んでいるだけですね。

function myFunction() {
 
 var result = Browser.msgBox("スクリプトを実行", Browser.Buttons.OK_CANCEL);
 if (result == "ok"){
 
 // 現在のスプレッドシートにアクセス
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 
 //  出力シートにアクセス
 var outputSheet = ss.getSheetByName('出力');
 
 // スプレッドシートのすべてのシートを取得(この時、各シートの情報が配列に格納される)
 var sheets = ss.getSheets();
 
 // 出力シートにシート名を記載する(シート数分繰り返す)
 for(var i = 0;i < sheets.length; i++){
 
   // シート名を取得
   var sheetName = sheets[i].getSheetName();
   
   // 出力シート以外の場合に次の処理を実行 ★今回はここを追加!
   if (sheetName !== '出力'){ 
 
   // 出力シートの最終行を取得(シート名を記載するセルを判定するため)
   var lastrow = outputSheet.getLastRow();
 
   //  値を入力する行を取得
   var row = lastrow +1;
     
   // 出力シートにシート名を記載
   outputSheet.getRange('A'+row).setValue(sheetName);
   }}}
}

これでうっかりスクリプト実行してしまうことも防止できますね(*'▽')

また次回お会いしましょう~!

この記事が気に入ったらサポートをしてみませんか?