GASでスプレッドシートにバインドした通知のコードを作りたいと考えています。
具体的には以下のコードで、Gmailからメールを送った後、スプレッドシートに送付済みという事を明記するため、二次元配列内の一次元配列の五番目の要素に”送付済み”と自動で入れたいと考えています。
pop()やpush()を用いてdata[i].pop()の後push('送付済み')としても書き込みができませんでした。
また、その列だけを別配列にするにして、空白判定ののちsetValue('送付済み')とすると不要な行まで書き込みがされてしまい、うまくいっておりません。
お知恵をお借りできれば幸いです。
GAS
1//シート定義 2const sheet = SpreadsheetApp.getActive().getSheetByName("シート1"); 3var lastRow = sheet.getLastRow(); 4var data = sheet.getRange(3, 1, lastRow, 5).getValues(); 5var date = new Date().getTime() 6var mailto, kenmei, honbun, option; 7 8 9function response(){ 10for(i=0; i<data.length; i++){ 11 if(data[i][0] != "" && data[i][1] != "" && data[i][2] != "" && data[i][3] != && data[i][5] == ""){ 12 mailto = data[i][1], "marito-okamoto@jccp.or.jp"; 13 kenmei = ; 14 honbun = data[i][0] + "様\n\n" + data[i][2] + "について承りました。\n\n"; 15 option = {from : xxxxxx, name : yyyyyyyyyyyy}; 16 GmailApp.sendEmail(mailto, kenmei, honbun, option); 17 18 }; 19 20 } 21 }; 22 23}
上記のコードで、
コードはマークダウン機能で見やすくできるので修正してください.また,うまくいかない内容を試した方法別に具体的に追記してください(書き込みがされないのか,違うセルを参照しているのか,そもそもエラーで実行できないのかなど).
あとこれは本筋とは関係ないのですが,GASのスプレッドシート系の関数にはgetActiveで始まる関数が多いため,getActiveよりもgetActiveSpreadsheetを使ったほうが後から機能の確認がしやすいのかなと思います(これらは同機能のはずです).
m1c4bl0lA様
ご指摘ありがとうございます。
見辛い書き込みで申し訳ありません。
getActiveSpreadsheetの方が確認がしやすのですね、その点は存じ上げませんでした。
早速使っていきたいと思います。
回答1件
あなたの回答
tips
プレビュー