前提・実現したいこと
スプレッドシートのW~AD列に「○」が入ったら、「○」が入った列の人にメールを送信する
スクリプトを作成したいです。
またメールの内容には下記のスプレッドシートの製番等を入れたいと思っています。
初心者の為教えていただけると大変助かります。
スプレッドシートは下にどんどん内容が追加されていきますので
最終行は特定できないものになります。
papinianus様
「○」を入れたらそれぞれメールを送るようにしたいので、
図でいえば、Bさんに○が入ったら送信。Dさんに入ったら送信という風にしたいです。
なのですでに○がある場合は送らないようにしたいと考えています。
図・及び試したコードを追記致しました。
不備が多く申し訳ありません。
よろしくお願い致します。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
ソースコード
試したこと
同じスプレッドシートで下記のようなスクリプトを作成していましたので(人に助けてもらいながら)
これアレンジしてできると思ったのですが知識が足りずできませんでした。
function myFunction() {
var ss =SpreadsheetApp.getActiveSpreadsheet();//スプレッドシートを取得
var sh =ss.getSheetByName("管理表 のコピー");
var rowSheet=sh.getDataRange().getLastRow();//使用している範囲の最終行を取得
try{
var myCell = sh.getActiveCell(); //アクティブセルを取得
}catch(e){
}
if (typeof myCell === undefined ) {
}
else{
if(myCell.getColumn() != 20){//変更セルがS列以外なら処理終了
return;
}
//○○の部分は完了とかのステータスが入る列番号
if ( sh.getRange('T' + myCell.getRow()).getValue() !== "完"){
return;
}
var Name = sh.getRange(myCell.getRow(),19).getValue();//名前 var To = {"■■":■■@gmail.com" };//アドレス var seiban = sh.getRange(myCell.getRow(),6).getValue();//製番 var Order = sh.getRange(myCell.getRow(),7).getValue();//注文主 var Sitename = sh.getRange(myCell.getRow(),8).getValue();//納入先 var Cc = "○○@gmail.com"; var person = sh.getRange('S' + myCell.getRow()).getValue();//「完」が入った行の営業担当 var Subject=+seiban+" "+Order;//メールタイトル var Body=Name+"様\n" +"\n" +"・"+seiban+" "+Sitename+"\n" +"\n" +"よろしくお願い致します。\n" +"\n";//メール本文 if (person in To == true){ MailApp.sendEmail(To[person],Subject, Body,{cc:Cc,from:"△△@gmail.com",name:"△△"}); }
}
}
補足情報(FW/ツールのバージョンなど)
回答3件
あなたの回答
tips
プレビュー