前提
Googleスプレッドシートで、
特定のシートの特定の列に特定の文字列が入力されたら、メールで通知したい。
実現したいこと
ある回答をGooleフォームから受け付け、フォームで入力された値をGoogleスプレッドシートに表示させています。
1つのスプレッドシートの内にシートが3つあり、この3つ目のシート、シート名【Googleフォーム回答】のC列に特定の値「参加者」が入力されたら、指定のメールアドレスに通知したいです。
以前、同じような質問をさせていただきましたが、シートが3つに増えてしまい、3つとも同じ形式をとっているため、1つ目、2つ目のシートに回答があった際も通知のメールが飛んでしまうようになってしまいました。
Google Apps Scriptでの記述方法を教えていただけないでしょうか。
発生している問題・エラーメッセージ
下記のソースコードではメールが飛ばなくなってしまいました。
該当のソースコード
function notification(){ const recipient = 'sample@hgu.jp'; //通知を飛ばす先のgメールアドレス const subject = 'Googleフォーム新規回答あり';//通知タイトル const body = 'https://docs.google.com/spreadsheets/sample';//確認するシートのURL var ss = SpreadsheetApp.getActiveSpreadsheet(); // 現在アクティブなスプレッドシートを取得 var sheet = ss.getSheets()[2]; // そのスプレッドシートにある3つめのシートを取得 var cell = sheet.getActiveCell(); // そのシートにあるアクティブなセルを取得 if(myCell.getColumn()==3 && myCell.getValue()=="参加者"){ //C列に参加者と入力があったか判定 GmailApp.sendEmail(recipient, subject, body);//通知メールを送信 } }
試したこと
var mySheet = SpreadsheetApp.getActiveSheet(); //シートを取得
var myCell = mySheet.getActiveCell(); //アクティブセルを取得
入力のあったシートから情報を取得するという上記ソースコードから
特定のシートを指定するソースコードを追加しました。
エラー表示はないですが、メールが送信されなくなりました。
シートの指定方法が良くないのだと思いますが、どこが間違っているのかわかりません。
ご教授いただけないでしょうか。
補足情報(FW/ツールのバージョンなど)
今後、シートの数が増える可能性もあるので、できればシート名を指定する方法を教えていただきたいです。
どうぞよろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー