備忘録

備忘録

GASで毎日6:00丁度に実行するトリガーを作成する方法

Ⅰ. はじめに

GASのトリガー設定Webページには「毎日6:00丁度に実行」という項目がありません。
この記事ではスクリプトでトリガーを設定する事により「毎日6:00丁度に実行」を実現します。

  • 特定の日時を指定した場合は一度しか実行されません。

f:id:kagasu:20190630090321p:plain

  • トリガー編集画面で「午前 6 時~7 時」と指定した場合、毎日実行されますが「午前 6 時~7 時」の間いつ実行されるか不明です。

f:id:kagasu:20190630090214p:plain

Ⅱ. やり方

1. スクリプトを編集する
function deleteAllTriggers () {
  const triggers = ScriptApp.getProjectTriggers()
  for (let i = 0; i < triggers.length; i++) {
    ScriptApp.deleteTrigger(triggers[i])
  }
}

function createTrigger () {
  const date = new Date()
  date.setDate(date.getDate() + 1)
  date.setHours(6, 0, 0)
  ScriptApp.newTrigger('myFunction').timeBased().at(date).create()
}

function myFunction () {
  // トリガーは最大で20個なので、古いトリガーを全て削除する
  deleteAllTriggers()
  createTrigger()
}
2. 初回のトリガーを設定する

「編集」→「現在のプロジェクトのトリガー」→「トリガーを追加」

実行結果

初回のトリガー①が実行され、「毎日6:00丁度に実行」されるトリガー②が自動的に作成されます。
f:id:kagasu:20190630094945p:plain