実現したいこと
GASで関数の入ったセルの値が変更されると、通知メールがくる設定を行いたい。
発生している問題・分からないこと
通知メールはくるようになったのですが、トリガーが意図せず1時間おきぐらいに繰り返し実行されているので、メールの送信回数の制限がかかったのか、「1 日に呼び出されたサービスが多すぎます:電子メール」のエラーが出てしまい、トリガーがその都度失敗するようになりました。
トリガー設定は以下の通りです。
実行する関数:checkFunctionOutput
イベントのソース:スプレッドシートから
イベントの種類:変更時(編集時にすると、セルの値が変更されても通知が届きません)
エラーメッセージ
error
1Exception: Service invoked too many times for one day: email. 2 at sendNotification(コード:23:11) 3 at checkFunctionOutput(コード:12:5)
該当のソースコード
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, }); }
試したこと・調べたこと
上記の詳細・結果
chatGPTで質問し、エラーの原因や解決方法を調べましたが、解決に該当するものはありませんでした。
試した方法
・スクリプト内でトリガーが重複して設定されていないか確認
・他のトリガーとの競合がないか確認
・トリガーの削除と再設定
補足
特になし

0 コメント