GASで設定したトリガーが予期せず1日に何回も実行されている

実現したいこと

関数の入ったセルの値が変更された時だけ、メール通知を送りたい

発生している問題・分からないこと

関数の入った特定のセルの値が変更された際にメール通知がくる、まではうまくいったのですが、それからシートの変更はしていなくても、何故か1時間おきにトリガーが実行されるようになりました。イメージ説明
失敗の原因は、「1 日に呼び出されたサービスが多すぎます: 電子メール」です。
同アカウントで複数のシートを作成しており、各々に同様のスクリプトを組んで、トリガーが実行するよう設定しているのですが、これが重複している原因なのでしょうか。
それとも、この1時間おきにトリガーが実行されているのは、何か別の原因があるのでしょうか。
ご教授の程、何卒よろしくお願いいたします。

エラーメッセージ

error

1Exception: Service invoked too many times for one day: email. 2

該当のソースコード

function checkFunctionOutput() { var monitoredSheetName = 'シート名'; // 監視するシートの名前 var monitoredCell = 'H1'; // 監視するセルの座標 // 監視対象のセルの現在の値と前回の値を取得 var currentCellValue = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(monitoredSheetName).getRange(monitoredCell).getValue(); var previousCellValue = ScriptProperties.getProperty('previousCellValue'); // 前回と異なる場合に通知を送信 if (currentCellValue !== previousCellValue) { var notificationMessage = 'シート ' + monitoredSheetName + ' のセル ' + monitoredCell + ' の値が変更されました。新しい値: ' + currentCellValue; sendNotification(notificationMessage); // 現在の値を前回の値として保存 ScriptProperties.setProperty('previousCellValue', currentCellValue); } } function sendNotification(message) { // 通知を送信する処理を実装(メール送信、Slack通知など) // ここに具体的な通知処理を書きます。 // 例: メール送信 MailApp.sendEmail({ to: '自分のアドレス', // 通知先のメールアドレス subject: 'セル変更通知', body: message, }); }

試したこと・調べたこと

上記の詳細・結果

teratailで検索してみましたが、同様の質問が見つかりませんでした。
chatGPTで質問しましたが、最終わからないという答えでした。

補足

トリガーの設定は、以下の通りです。
関数:checkFunctionOutput
スプレッドシートから変更時

コメントを投稿

0 コメント