GASプロジェクトに設定されているトリガー一覧を出力するGoogle Apps Scriptです。
特にありませんが、今回はスプレッドシートのコンテナバインド型として実装しています。
サンプルとして2つのトリガーをセットしておきました。
時間主導型と、スプレッドシートを開いたときに実行されるものです。
上のメニューにある「スクリプト実行」から「プロジェクトトリガーの一覧を出力する」を実行します。
スプレッドシートにトリガー一覧が出てくれば成功です。
出力されるのは以下の項目です。
トリガーソースIDはイベントのソースが「CLOCK」の場合は出力されません。
/**
* このスクリプトの説明、使い方はこちら。
* 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);
}