【GASの便利自作関数】シートの削除を自動化

その他

0

GASに慣れてくるとシート自体を作っていくことがあると思います。

テストデータを入れて動かしたらシートが10数個できてしまって、消すのが面倒だなと言う時に下記の関数を動かすと一括で削除できます!

どのプロジェクトでも使えるくらい大変便利です!

//削除除外シートor末尾のシート1つを残して、すべてのシートを削除する関数
function deleteALLSheets() {
  //あらかじめ削除したくないシート名を記載してください。例「["シート1","シート5","シート10"]」
  const notDelSheet = ["設定用", "シート1"];
  // 現在アクティブなスプレッドシートを取得
  let mySheet = SpreadsheetApp.getActiveSpreadsheet();
  //取得したスプレッドシートにある全てのシートを配列として取得
  let sheetData = mySheet.getSheets();
  //末尾のシートを削除するかを決めるフラグ
  let flag = 1;
  if (flag === 1) {
    let sheet = mySheet.getSheetByName("シート1");
    sheet ? mySheet.deleteSheet(sheet) : '';
    mySheet.insertSheet("シート1");
  }
  //forループでシートを削除する削除を行う
  for(i=0; i<sheetData.length; i++){
    //削除したくないシート存在しない場合、末尾のシートは削除せずスキップする
    if(flag === 0 && i == sheetData.length-1){
      break;
    }
    //削除対象から除外するシートにヒットした場合は、削除処理は行わず、フラグを立てる
    if(notDelSheet.indexOf(sheetData[i].getSheetName()) != -1){
      flag = 1;
    }
    //削除除外シートではない場合は、削除処理を実行する
    else{
      mySheet.deleteSheet(sheetData[i]);
    }
  }
}

削除になるので、使い方に気をつけてくださいね!

もっとかっこいい書き方があれば是非コメントください!!!

0

Posted by riku