スポンサーリンク
タイトルの通りです。プログラムと設定方法を紹介します。
Google Apps Scriptの用意
Google Apps Script(GAS)の用意
function setTrigger() {
deleteTriggers('myFunction');
//下記の場合は、1月~12月 で 1日~31日 で 月~土の曜日であれば、08:00にトリガーを設定する
setTriggerMain('myFunction', /0[1-9]|1[0-2]/, /0[1-9]|[12][0-9]|3[01]/, /[1-6]/, 08, 00);
setTriggerMain('myFunction', /0[1-9]|1[0-2]/, /0[1-9]|[12][0-9]|3[01]/, /[1-6]/, 12, 00);
setTriggerMain('myFunction', /0[1-9]|1[0-2]/, /0[1-9]|[12][0-9]|3[01]/, /[1-6]/, 16, 00);
setTriggerMain('myFunction', /0[1-9]|1[0-2]/, /0[1-9]|[12][0-9]|3[01]/, /[1-6]/, 21, 00);
}
//funcName ⇒ プログラム名
//regExpMonth ⇒ 正規表現での判定(月) (1月:00/2月:01/・・・12月:11)
//regExpDate ⇒ 正規表現での判定(日) (1日:01/2日:02/・・・31日:31)
//regExpDOW ⇒ 正規表現での判定(曜日)(日:0/月:1・・・土:6)
//setHour ⇒ 設定Hour
//setMinute ⇒ 設定Minute
function setTriggerMain(funcName, regExpMonth, regExpDate, regExpDOW, setHour, setMinute) {
try {
const date = new Date();
if (regExpMonth.test(date.getMonth().toString().padStart(2, "0"))) {
if (regExpDate.test(date.getDate().toString().padStart(2, "0"))) {
if (regExpDOW.test(date.getDay())) {
date.setHours(setHour);
date.setMinutes(setMinute);
ScriptApp.newTrigger(funcName).timeBased().at(date).create();
}
}
}
} catch (err) {
console.log(err);
}
}
function deleteTriggers(funcName) {
const triggers = ScriptApp.getProjectTriggers();
triggers.forEach(trigger => {
if (trigger.getHandlerFunction() !== funcName) return;
ScriptApp.deleteTrigger(trigger);
});
}
function myFunction() {}
スポンサーリンク
トリガーの用意
下図のようにトリガーを設定する。このプログラムの場合は、「時刻を選択」は「午前0時~1時」がいいでしょう。
日本時間で行う場合は、タイムゾーンは「Asia/Tokyo」に設定する。
参考サイト/関連サイト
setTrigger関数、setTriggerMain関数について
Google Apps ScriptでGmailの情報を取得する際に、受信日時を細かく指定する方法。
月末日や最終金曜日にGoogle Apps Scriptを自動で実行するテクニック
Google Apps Script で 平日の 特定時間帯のみ 1時間おきに関数を実行する
deleteTriggers関数について
最後までお付き合いいただきありがとうございます!
この情報が誰かの役にたてれば幸いです。