はじまり
135ml
ほぉ~、毎日大根が良い感じに干涸らびていっていますな~。
リサちゃん
そうなんだよね~、この干涸らび具合を日記とかにして残しておきたいよね~。
135ml
では、今回のツールで毎日の大根の成長をGoogleドキュメントに記してはどうかね?
リサちゃん
ほぉ~、使ってみっか~。 ボリボリ
ツールの概要
毎日定期的にこのツールを作動させると、このフォルダのように「yyyyMMdd(曜日)」といった感じのファイル名のファイルを作成します。
「yyyyMMdd(E)」のファイルを元に作成しています。
ツールのソース
以下が実際に使用しているソースになります。
コード.gs
function setTrigger(){
// var funcName = 'setTrigger';
// deleteTrigger(funcName);
// createTrigger(funcName);
duplicateDocument();
}
function duplicateDocument() {
// テンプレートファイル(「yyyyMMdd(E)」)
var templateFile = DriveApp.getFileById('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
// 出力フォルダ(「010_Diary」)
var OutputFolder = DriveApp.getFolderById('YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY');
// 出力ファイル名
var OutputFileName = Utilities.formatDate(new Date(), 'JST', 'yyyyMMdd(E)');
templateFile.makeCopy(OutputFileName, OutputFolder);
}
苦労した点
というか、出来なかった点です・・・。
ファイルをコピーするためのトリガーを以下のコードで書いたのですが、上手く定期的に動かず・・・。一度は動くんですが、2回目以降はなぜか動かない・・・。結局わからなかった・・・。
function createTrigger(funcName){
const date = new Date();
date.setDate(date.getDate() + 1);
date.setHours(16); // 日本の時間より14時間早く設定する。6時に作る。
date.setMinutes(1);
ScriptApp.newTrigger(funcName).timeBased().at(date).create();
}
function deleteTrigger(funcName){
const triggers = ScriptApp.getProjectTriggers();
for(const trigger of triggers){
if(trigger.getHandlerFunction() == funcName){
ScriptApp.deleteTrigger(trigger);
}
}
}
コードで出来なかったので、渋々この画面から設定しています。
おしまい
135ml
くそ~、トリガーがコードで上手く設定できなかったのが悔しかったな~。
リサちゃん
大根をつい食ってしまって悔しいな~。 ボリボリ
135ml
おい、そろそろ干す工程は終わりそうだが、そんなに食ってたら出来上がる前に無くなっちまうぞ・・・。
以上になります!
コメント