前提・実現したいこと
Googleフォームで在庫データをスプレッドシートに自動で集計し、H列のメール送信フラグが1になったら自動でメールを送信する。
H列は在庫数が発注ラインを下回った場合に1となり、在庫が足りている場合とチェックボックスにチェックを入れた場合には0となります。
※実務においては通知が来ない限りスプレッドシートは開かず、発注時と納品伝票が手元に来た際にG列をチェックするイメージです。
発生している問題・エラーメッセージ
1.H列全体をうまく参照できず、数値が1であってもメール未送信のメッセージが表示される。
2.参照する際にピンポイントでセルを選択してやるとメールが送信される事は確認できたが、フォーム経由で入出庫数を入力した場合、メール送信フラグが1になってもメールが送られない。
該当のソースコード
//onChangeStatusはシートの値が変更された時に実行するようにトリガ設定済み. function onChangeStatus(){ var Sheet = SpreadsheetApp.getActiveSheet(); //シートを取得 var ActCell = Sheet.getActiveCell(); //変更されたセル var ActRow = ActCell.getRow() //変更されたセルの行番号 var ActCol = ActCell.getColumn() //変更されたセルの列番号 var ActValue = Sheet.getRange(ActRow, ActCol).getValue() //変更されたセルの値 //変更されたセルが8列目かつ値が1の場合メール送信 if(ActCol == 8 && ActValue == 1){ sendEmail(); Browser.msgBox('メールを送信しました.'); }else{ Browser.msgBox('メール未送信'); } } function sendEmail(){ const recipient = 'アドレス'; const subject = '件名'; const body = '本文'; const options = {name: '送信者'}; GmailApp.sendEmail(recipient, subject, body, options); }
補足情報
https://teratail.com/questions/295611
こちらを参考にしております。
お手数ですが、お力をお貸しください。
あなたの回答
tips
プレビュー