回答編集履歴

1 お礼の追加

handymatsu

handymatsu score 24

2019/02/13 17:21  投稿

アドバイスありがとうございました。解決できました。こんな感じです。  
 
```GoogleAppsScript
 var folderId2 = "******************************";
 var ssIDforT = createSpreadsheetInFolder(folderId2, "データ(管理用)");
 var ssForT = new Ssheet(ssIDforT);
 ssOrg.sheetCopyToSheetOfAnotherSS(0,ssForT);//ブックssOrgの0番シートをブックssForTに挿入コピー
 ssForT.deleteSheet(0);//最初からある不要なシートを削除
 var ssIDforS = createSpreadsheetInFolder(folderId2, "データ(閲覧用)");
 var ssForS = new Ssheet(ssIDforS);
 ssOrg.sheetCopyToSheetOfAnotherSS(0,ssForS);
 ssForS.deleteSheet(0);//最初からある不要なシートを削除
//////////Ssheetクラスの定義開始(コンストラクタとメンバ関数で構成)2019/02/05
//Ssheetクラスのコンストラクタの記述
Ssheet = function(id){
 this.id = id;
 this.ssFile = SpreadsheetApp.openById(id);
 this.ssFileName = this.ssFile.getName();
 SpreadsheetApp.setActiveSpreadsheet(this.ssFile);//値を返さない
 this.activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
}
//シートを他のファイルのシートとしてコピー挿入する
Ssheet.prototype.sheetCopyToSheetOfAnotherSS = function(sheet,dstSS){
 this.activeSheet = this.activeSpreadsheet.getSheets()[sheet];
 return this.activeSheet.copyTo(dstSS.ssFile);
}
///////////////////////////////////Ssheetクラスの定義終了(大半を省略)
//フォルダID,ファイル名を受け取り,スプレッドシートを指定フォルダ内に新規作成しそのファイルIDを返す
function createSpreadsheetInFolder(folderID, fileName){
 var folder = DriveApp.getFolderById(folderID);
 var newSS=SpreadsheetApp.create(fileName);
 var originalFile=DriveApp.getFileById(newSS.getId());
 var copiedFile = originalFile.makeCopy(fileName, folder);
 DriveApp.getRootFolder().removeFile(originalFile);
 var copiedFileId = copiedFile.getId();//コピーのファイルIDをゲット
 return copiedFileId;
}
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る