技術研修で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); } }
研修準備なので,ものすごくインテリジェントにする必要はない。この程度で十分。