匿名質問者

Google Action Scriptに関する質問です。


メルマガの自動送信を行いたいと思っています。

その為Google クラウドスクリプティングという本を購入し、p158の以下のコードを実行しました。※コード自体はhttp://book.mycom.co.jp/support/pc/gas/に公開されています。

function sendMail() {
var mySS = SpreadsheetApp.getActiveSpreadsheet();
var mailSheet = mySS.getSheetByName("メール");
var addSheet = mySS.getSheetByName("住所録");
var endRow = addSheet.getLastRow();
var mySubject = mailSheet.getRange("C2").getValue();

for (i = 2; i <= endRow; i++ ) {
if (addSheet.getRange(i, 3).getValue()) {
var myBody = addSheet.getRange(i, 1)
.getValue() + "様¥n¥n";
myBody = myBody + mailSheet.getRange("C3").getValue();
var mailTo = addSheet.getRange(i, 2).getValue();
GmailApp.sendEmail(mailTo, mySubject, myBody);
}
}
Browser.msgBox("メール送信しました");
}

すると「TypeError: null のメソッド「getLastRow」を呼び出せません。」という表示がでてしまい、実行されません。こちらはどのように改善すれば送られるようになりますでしょうか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/05/24 15:40:05

ベストアンサー

匿名回答1号 No.1

addSheetというオブジェクト?がnullであるためエラーになっているようですね。
ですから、ご提示のコード以外の部分にバグがあると思います。addSheetを定義していたり代入していたりする部分をチェックしてみてください。

匿名回答1号

あ、何を言ってるんだろ、代入部分ありましたね。そうすると住所録というシートが存在しないのかもしれません。

2013/05/18 10:50:58
匿名質問者

ありがとうございます!sheetを「新たにスプレッドシートを作る」という風に勘違いしていて、nullになっていたことに気付きました。同一ファイル内にメールというシートと住所録というシートを作りなおした所、解決しました!

2013/05/18 10:58:16

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません