var CopiedFile = templateFile.makeCopy(OutputFileName, OutputFolder);
var CopiedFileId = CopiedFile.getId();
LogFileSheet.getRange("A1").setValue(CopiedFileId);
指定したテンプレートファイルを複製
ファイル名を「テンプレート」から「テンプレート+日付」へ変更
複製したファイルのIDを記録用シートの A1セル に書き込み
Phase3:チェックボックスの確認
var Values = CopiedFileSheet.getRange(1, 1, 1, 8).getValues();
for (var i = 0; i < Values[0].length; i++) {
if (Values[0][i] === true) {
Logger.log("チェックがついています");
LogFileSheet.getRange("A2").setValue("チェックがついています");
LogFileSheet.getRange("A3").setValue("");
}
}
複製したシートの1行目・1〜8列目を確認
もし true(チェックあり)のセルがあればログ出力し、A2セルに結果を記録
Phase4:シートのコピーと並び順調整
var DateSheet = CopiedFileSheet.copyTo(CopiedFile);
var ActiveSheet = DateSheet.setName(date);
CopiedFile.setActiveSheet(ActiveSheet);
CopiedFile.moveActiveSheet(1);
複製先ファイル内で「コピー元」シートを複製
日付(例:190826)をシート名に設定
シートを先頭(一番左)に移動して整理
コードのまとめ
全体のスクリプトコードです。
function myFunction() {
//■Phase1
//記録用のスプレッドシート
var LogFile = SpreadsheetApp.openById('記録用のシートID');
//シートの選択
var LogFileSheet = LogFile.getSheetByName('シート1');
var myDate = LogFileSheet.getRange("A3").getValue();//2019/08/26と書いてあるます。
var input = new Date(myDate);
var date = Utilities.formatDate(input, 'JST', 'yyMMdd')
//■Phase2
// テンプレートファイル
var templateFile = DriveApp.getFileById("コピー元のシートID");
// 出力先フォルダ
var OutputFolder = DriveApp.getFolderById("格納先のフォルダID");
// 出力ファイル名
var OutputFileName = templateFile.getName().replace('テンプレート', '')+date;
//テンプレートのリネーム&コピー
var CopiedFile = templateFile.makeCopy(OutputFileName, OutputFolder);
//コピーしたシートのID取得
var CopiedFileId = CopiedFile.getId();
//シートにコピー先のシートIDを書き込み
LogFileSheet.getRange("A1").setValue(CopiedFileId);
//■Phase3
//コピーへの書き込み確認
var CopiedFileSheet = SpreadsheetApp.openById(CopiedFileId).getSheetByName('コピー元');
var Cells = CopiedFileSheet.getRange(1, 1, 1, 8);
var Values =Cells.getValues();
//チェックボックス判定
for (var i=0; i<Cells.getNumColumns(); i++){
if (Values[0][i] === true) {
Logger.log("チェックがついています")
LogFileSheet.getRange("A2").setValue("チェックがついています");
LogFileSheet.getRange("A3").setValue("");
}else{
}
}
//■Phase4
//シートテンプレートをコピーしてを名前を日付に
var CopiedFile = SpreadsheetApp.openById(CopiedFileId);
var DateSheet = CopiedFileSheet.copyTo(CopiedFile);
var ActiveSheet = DateSheet.setName(date);
//シートを一番左に移動
CopiedFile.setActiveSheet(ActiveSheet);
CopiedFile.moveActiveSheet(1);
}