前提・実現したいこと
日報の下書きを作成するスクリプトを作成したいのですが、うまく動いてくれないので質問させてください。
GoogleスプレッドシートのB2~B6に記載されている内容を基に、Gmailの下書きにそれらを記入させたいです。
具体的には下記のような感じです。19行目のGmailApp.createDraftの行に問題がありそうです。
よろしくお願い致します。
B2:Toのメールアドレス
B3:タイトル(件名)
B4:本文の冒頭(「お疲れ様です」など)
B5:本文(メールの内容)
B6:本文の締め(「よろしくお願い致します」など)
発生している問題・エラーメッセージ
Exception: 無効なメール: Range at createDraft(コード:19:12)
該当のソースコード
GAS
1function createDraft() { 2 var app,sheet 3 app = SpreadsheetApp 4 sheet = app.getActiveSheet() 5 6 var date = new Date() 7 var tsuki = date.getMonth()+1; 8 var hi = date.getDate() 9 10 11 var to, subject, body 12 to = sheet.getRange(2,2) 13 subject = tsuki + '/' + hi + sheet.getRange(3,2); 14 body = ''; 15 body += sheet.getRange(4,2) + '\n\n'; 16 body += sheet.getRange(5,2) + '\n\n'; 17 body += sheet.getRange(6,2); 18 19 GmailApp.createDraft(to,subject,body); 20 21}
試したこと
セミコロンの位置や改行を入れてみましたが改善されませんでした。
to, subject, bodyの間のスペースを入れても外しても変わりませんでした。
こういう時に何を試せばわからないことのきっかけが見えてくるかまだよく知らないので、試せたことはこの程度でした...。
補足情報(FW/ツールのバージョンなど)
元々のスクリプトはgetDataRangeや2次元配列を活用したもので、それを加工して使用ようとしたものが上記のものです。
元のスクリプトとURLは下記のものです。
URL
https://tonari-it.com/gas-gmail-create-draft/
スクリプト
function createDraft() {
const values = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
const to = values[1][1];
const subject = values[2][1];
let body = '';
body += values[3][1] + '\n\n';
body += values[4][1] + '\n\n';
body += values[5][1];
GmailApp.createDraft(to, subject, body);
}
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー