GASで特定シートを削除

2024/04/02に公開
//削除除外シートor末尾のシート1つを残して、すべてのシートを削除する関数
function deleteALLSheets() {
  //あらかじめ削除したくないシート名を記載してください。例「["シート1","シート5","シート10"]」
  const notDelSheet = [""];
  // 現在アクティブなスプレッドシートを取得
  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]);
    }
  }
}

Discussion