2022/07/18に更新

【GASで整理】トリガーの一覧を出力する

トリガー

GASプロジェクトに設定されているトリガー一覧を出力するGoogle Apps Scriptです。

こんな悩みを解決します


  • トリガーが多くなってきたので整理したくなった。とりあえず一覧を出力したい。

用意するもの


特にありませんが、今回はスプレッドシートのコンテナバインド型として実装しています。

このスクリプトで出来ること


  • GASのプロジェクトに設定されているトリガー一覧を出力することが出来ます。

使い方


1.スクリプトの実行

サンプルとして2つのトリガーをセットしておきました。
時間主導型と、スプレッドシートを開いたときに実行されるものです。

上のメニューにある「スクリプト実行」から「プロジェクトトリガーの一覧を出力する」を実行します。

2.結果の確認

スプレッドシートにトリガー一覧が出てくれば成功です。

出力されるのは以下の項目です。
トリガーソースIDはイベントのソースが「CLOCK」の場合は出力されません。

  • 実行される関数名
  • イベントのソース(時間、スプレッドシート等)
  • イベントの種類(起動時、編集時等)
  • トリガーソースID(ソースがスプレッドシート等のファイルならそのファイルID)

スクリプト


/**
 * このスクリプトの説明、使い方はこちら。
 * https://myfunc.jp/items/00121/index.html
 */

function onOpen() {
  // スプレッドシートを開いたときに実行される関数

  // UIの取得
  const ui = SpreadsheetApp.getUi()

  // メニューの表示名
  const menu = ui.createMenu('スクリプト実行');

  // メニューに追加するボタン
  menu.addItem('プロジェクトトリガーの一覧を出力する', 'export_all_triggers');

  // メニューを画面に追加する
  menu.addToUi();
}


function export_all_triggers() {

  // トリガーの一覧を取得する
  const triggers = ScriptApp.getProjectTriggers();

  // 最終的な結果を格納する配列を準備
  const result = [];

  // トリガーの数だけループする
  for (let i = 0; i < triggers.length; i++) {

    // 実行される関数名
    let handler_function = triggers[i].getHandlerFunction();

    // イベントのソース(時間、スプレッドシート等)
    let trigger_source = triggers[i].getTriggerSource();

    // イベントタイプ(起動時、編集時等)
    let event_type = triggers[i].getEventType();

    // トリガーソースID(ソースがスプレッドシートならそのファイルのID)
    let trigger_source_id = triggers[i].getTriggerSourceId();

    // 各値を結果用の配列に追加する
    result.push([handler_function, trigger_source, event_type, trigger_source_id]);
  }

  // 項目名を追加する
  result.unshift(['実行する関数', 'イベントのソース', 'イベントの種類', 'トリガーソースID'])

  // 開いているスプレッドシートオブジェクトを取得
  const ss = SpreadsheetApp.getActiveSpreadsheet();

  // アクティブなシートを取得
  const sheet = ss.getActiveSheet();

  // 使われている最下行の1行下から追記する。範囲オブジェクトを取得。
  const range = sheet.getRange(sheet.getLastRow() + 1, 1, result.length, result[0].length);

  // 値の書き込みを実施
  range.setValues(result);

}

関連するアプリ


タグ一覧

最新のアプリ

人気のアプリ

ページトップに戻る
myfunc.jp