✏スプレッドシート一括削除

キャラクターシートが増えてくると、シートを一枚一枚削除するのは大変なので、一括で削除したい。そのためのGASです。

配布されているシートの初期構成

スプレッドシート構成

スプレッドシート構成

<aside>

ソースコード全体

//削除したくないシート
const defnotDelSheet = ["※コンバートシート","※CSテンプレート","※変換先(デフォルト)","※変換先(グリーン)","※変換先(ダーク)","(CS例1)","(CS例2)","▼INDEX","▼INDEX(ダーク)"];
const addnotDelSheet = ["削除したくないシート"];
const notDelSheet = defnotDelSheet + addnotDelSheet;

function deleteCS(){
  //スプレッドシートにある全てのシートを配列として取得
  let sheetData = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  let delsheet = SpreadsheetApp.getActiveSpreadsheet();

  //forループでシートを削除する
  for(var i=0;i<sheetData.length;i++){
    //削除対象から除外するシートにヒットした場合は、削除処理は行わず、フラグを立てる
    if(notDelSheet.indexOf(sheetData[i].getSheetName()) != -1){
      flag = 1;
    }
    //削除除外シートではない場合は、削除処理を実行する
    else{
      delsheet.deleteSheet(sheetData[i]);
    }
  }
}

</aside>

<aside>

変更する部分

defnotDelSheetでは配布時の初期シート名を記載しています。 ”xxx”:xxxをシート名に合わせて適宜変更してください。

//削除したくないシート
const defnotDelSheet = ["※コンバートシート","※CSテンプレート","※変換先(デフォルト)","※変換先(グリーン)","※変換先(ダーク)","(CS例1)","(CS例2)","▼INDEX","▼INDEX(ダーク)"];
const addnotDelSheet = ["削除したくないシート"];
const notDelSheet = defnotDelSheet + addnotDelSheet;

新しく『DelSheet.gs』とでも名前を付けて保存し、実行してください。

削除しないシートをスプレッドシートで定義してもいいんですが、面倒なので今のところはしていません。

<aside>

参考URL

https://auto-worker.com/blog/?p=1329

削除シートにフラグたててますが、何も処理してないので特に意味はないです。

</aside>

</aside>