K's Atelier

個人的な学習記録

Google App Scriptで研修フォルダ&ファイル整備

技術研修でGoogle Driveを使うと,演習中に共同作業できて便利だ。 しかしGoogle Driveはフォルダ単位のコピーができない。 手作業でフォルダ作って,手作業でファイルコピーして,手作業でファイル移動して,はありえないので,Google App Scriptに頼ることにした。

function myFunction() {
  var id_sheet = "シートID"; //スプレッドシート原本
  var id_slide = "スライドID"; //スライド原本

  var id_folder = "ルートフォルダID";
  var folder = DriveApp.getFolderById(id_folder);
  var f_a = folder.createFolder('A'); // シートやスライドを配置するフォルダ
  var f_b = folder.createFolder('B'); // シートやスライドを配置するフォルダ

  copyFiles(f_a,id_sheet,id_slide);
  copyFiles(f_b,id_sheet,id_slide);
}

function copyFiles(folder_target,id_sheet,id_slide) {
  var sheet = DriveApp.getFileById(id_sheet);
  var slide = DriveApp.getFileById(id_slide);
  var sheetName = sheet.getName();
  var slideName = slide.getName();

  for(var i=1; i<=4; i++){ // 4名分。
    var nameNew = sheetName + "_0" + i + "_氏名";
    var cp = sheet.makeCopy(nameNew);
    cp.moveTo(folder_target);
  }
  for(var i=1; i<=4; i++){
    var nameNew = slideName + "_0" + i + "_氏名";
    var cp = slide.makeCopy(nameNew);
    cp.moveTo(folder_target);
  }
}

研修準備なので,ものすごくインテリジェントにする必要はない。この程度で十分。