前提・実現したいこと
スプレッドシートで管理表を作成し、ステータスが変更された場合に自動でメール通知を送ることができるようにしたいです。
onChangeStatusで対応しようと思い、作成したコードは以下の通り。
function onChangeStatus(e){ var ss = SpreadsheetApp.getActiveSheet(); var values = ss.getDataRange().getValues(); var dRange = ss.getDataRange(); var cell = e.range; var status = e.value; var sheet = cell.getSheet(); var column = cell.getColumn(); var row = cell.getRow(); var lastRow = sheet.getLastRow(); if(Column === 17 && row >= 5 && row <= lastrow && status === '対応中'){ sendEmail(row); } } function sendEmail(row){ var FIELDS = { day: 3, time: 4, call: 2, agent: 6, policy: 8, request: 9, limit: 10, client: 5, } var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues(); var index = row - 1; var day = values[index][FIELDS.day]; var call = values[index][FIELDS.call]; var time = values[index][FIELDS.time] var client = values[index][FIELDS.client]; var ag = values[index][FIELDS.ag]; var policy = values[index][FIELDS.policy]; var request = values[index][FIELDS.request]; var limit = values[index][FIELDS.limit]; var recipient = 'アドレス' var requestName = '受電履歴' var subject = ''; subject += '【'+limit+'】受電記録 代理店 '+ag+'' var body = '';
上記を実行すると以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
TypeError: Cannot read property 'range' of undefined
該当のソースコード
var cell = e.range;
試したこと
引数の問題かと思い、引数を変更等しましたが変わらずrangeの定義ができません。
初心者のため基本的な質問かと存じますがご回答いただけますと幸いです。
補足情報(FW/ツールのバージョンなど)
Google Workspaceのビジネス用の利用ですがセキュリティ上制限が多いです。
この要因でできない可能性等あればご教示いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/01 05:26
2021/10/01 05:32