teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

こめんとでもつけてみるか

2018/11/14 08:17

投稿

papinianus
papinianus

スコア12705

answer CHANGED
@@ -16,19 +16,19 @@
16
16
  const curSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
17
17
  const templateSheet = curSpreadsheet.getSheetByName("Aシート");
18
18
  const copyList = curSpreadsheet.getSheetByName("Bシート").getDataRange().getValues();
19
- copyList.shift();
19
+ copyList.shift(); //ヘッダ行を捨てる
20
- copyList.forEach(function(element, index, array){
20
+ copyList.forEach(function(element, index, array){ //forEachでループ。elementが1行分
21
- const fileName = element[0];
21
+ const fileName = element[0]; // A列にファイル名
22
22
  const file = SpreadsheetApp.create(fileName);
23
- const users = element.slice(1).filter(String);
23
+ const users = element.slice(1).filter(String); // B列以降で文字になるやつだけフィルタ
24
24
  file.addEditors(users);
25
- const copied = templateSheet.copyTo(file);
25
+ const copied = templateSheet.copyTo(file); //copyToすると、コピーしたシートが返り値になる
26
- copied.setName("Aシート");
26
+ copied.setName("Aシート"); //デフォルトで「Aシートのコピー」とかになるのでリネーム
27
27
  trimSheet(file, "Aシート");
28
28
  });
29
29
  }
30
30
 
31
- function trimSheet(spreadsheet, name) {
31
+ function trimSheet(spreadsheet, name) { //スプレッドシートを作ると「シート1」ができちゃうので、指定した名前(name)を持たないシートを消すやつ
32
32
  spreadsheet.getSheets().filter(function(sheet){ return sheet.getName().indexOf(name) === -1}).forEach(function(sheet){spreadsheet.deleteSheet(sheet);});
33
33
  }
34
34
  ```