見出し画像

【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();
}

いいなと思ったら応援しよう!