🐈
GAS トリガーの設定をスクリプトから設定する方法
はじめに
これまで、GASのトリガーの設定をトリガーのページで行っていました。
今回は、スクリプトからも設定できることを知ったので、その方法を共有します。
スクリプトでトリガーを設定する方法
以下のコードで、スクリプトからトリガーを設定することができます。ScriptApp.newTrigger('実行したい関数名')の'実行したい関数名'部分に、トリガーへ登録したい関数名を記述します。
スプレッドシートを編集したときや、時間条件で発動するなど、トリガーの発動条件を決めます。
- スプレッドシートを編集したときにトリガーを発動
const 実行したい関数名 = (e) => {
//実行したい機能
};
const createEditTrigger = () => {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
ScriptApp.newTrigger('実行したい関数名')
.forSpreadsheet(spreadsheet)
.onEdit()
.create();
};
- 指定した日時にトリガーを発動
const 実行したい関数名 = (e) => {
//実行したい機能
};
const setTrigger = () => {
ScriptApp.newTrigger('実行したい関数名')
.timeBased()
.onWeekDay('トリガーを実行したい曜日')
.create();
};
既存のトリガーの設定を削除する
これだと、スクリプトを実行するたびにトリガーの設定が増えていきます。
スクリプトを実行するたびにトリガーの設定が増えていかないように、既存のトリガーの設定を削除する関数を追加します。
const deleteExistingTriggers = () => {
const triggers = ScriptApp.getProjectTriggers();
triggers.forEach(trigger => {
if (trigger.getHandlerFunction() === '実行したい関数名') {
ScriptApp.deleteTrigger(trigger);
}
});
};
const createEditTrigger = () => {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
deleteExistingTriggers(); // 既存のトリガーを削除
ScriptApp.newTrigger('実行したい関数名')
.forSpreadsheet(spreadsheet)
.onEdit()
.create();
};
おわりに
今回は、「GASのトリガーの設定をスクリプトから設定する方法」の共有でした。
最後まで読んでいただき、ありがとうございました!!
Discussion