キャラクターシートが増えてくると、シートを一枚一枚削除するのは大変なので、一括で削除したい。そのための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>