【GAS:Google Apps Script】任意(もしくは全て)のトリガーを削除する

【GAS:Google Apps Script】任意(もしくは全て)のトリガーを削除する

GAS(Google Apps Script)の案件を手掛ける上でよく使い回す処理をファンクション化してみました。
コピーしてそのまま使うこともできますし、一部カスタマイズして使ってください。

「複数のサイトを横断的に見ないと答えにたどり着かない。。。」
そんな思いにこたえることができれば幸いです!

さて、今回は「任意(もしくは全て)のトリガーを削除する」処理の紹介です。

処理概要

任意のシートを既存スプレッドシートにコピーする
(引数未指定時は全てのトリガーを削除する)
【引数】
functionName : 削除するトリガーのファンクション名(文字列)
【返り値】
(なし)

ファンクション

function deleteTrigger(functionName) {
  let triggers = ScriptApp.getProjectTriggers();
  for (let i = 0; i < triggers.length; i++) {
    let trigger = triggers[i];
    if (!!functionName && trigger.getHandlerFunction() == functionName) {
      ScriptApp.deleteTrigger(trigger);
    } else if (!functionName) {
      ScriptApp.deleteTrigger(trigger);
    }
  }
}

内部処理の説明

let triggers = ScriptApp.getProjectTriggers();

一旦全てのトリガーを取得し、triggers という変数に入れています。

for (let i = 0; i < triggers.length; i++) {

変数の triggers に入っているトリガー数分だけ繰返し処理をしています。

if (!!functionName && trigger.getHandlerFunction() == functionName) {
  ScriptApp.deleteTrigger(trigger);
}

引数の functionName が指定されており、トリガーのファンクション名が一致している場合は、そのトリガーを削除します。

if (!functionName) {
  ScriptApp.deleteTrigger(trigger);
}

引数の functionName が指定されていない場合は、トリガーのファンクション名に関係なくそのトリガーを削除します。

まとめ

今回は簡単に「任意(もしくは全て)のトリガーを削除する」処理について紹介しました。

Google Apps Script は無料枠でも十分に使えとても便利です。
OSに依存せずに使えることから様々な環境で自動化・省力化してスローライフを楽しみましょう!

GASでの簡易システム制作に関するお問い合わせはこちらからお待ちしております。
LancersMENTAでも活動していますので、そちらからお仕事を依頼して頂けます。