【GAS】Google Apps Script 活用事例 非表示のシートをコピーして、 別のファイルにバックアップを取るスクリプト
気が付くとシートが20枚、30枚存在する…..そういうことはありませんか?
使っていない….一時的に使っただけで不要で非表示にしているんだけど、いつか使う機会がもしかしたらあるかも?
今回はそういった非表示のシートを、新規作成したスプレッドシートにコピーして、コピー完了後に元シートから削除するというスクリプトです。アーカイブ的な意味合いの強いスクリプトです。
スクリプト本文
function main() {
// 対象となるSpreadsheet
const sheetUrl = 'https://docs.google.com/spreadsheets/d/*******/edit?gid=********';
const sheets = SpreadsheetApp.openByUrl(sheetUrl).getSheets();
for(const sheet of sheets){
if(sheet.isSheetHidden()){
console.log(`シート名:${sheet.getName()}は非表示です。`);
// 非表示のシートを今開いている、このSpreadsheeetにコピーする
duplicateSheet_(sheet);
Utilities.sleep(3000);
// コピーし終えたシートを削除する
SpreadsheetApp.openByUrl(sheetUrl).deleteSheet(sheet);
}
}
}
function duplicateSheet_(sheet){
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const newSheet = sheet.copyTo(spreadsheet);
newSheet.setName(sheet.getName()).activate();
}