前提・実現したいこと
GAS
スプレッドシートで、メールアドレス・添付書類名(2種類)の一覧表を作成し
その一覧表にあるアドレス宛に添付書類(2種類)を添付して自動でメールを送りたい。
発生している問題・エラーメッセージ
Exception: Cannot retrieve the next object: iterator has reached the end.
function EmailTest(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();
for (var i =1; i <3; i++){
var to = sh.getRange(i,1).getValue();
var attach1 = sh.getRange(i,2).getValue();
var attach2 = sh.getRange(i,3).getValue();
var files = DriveApp.getFilesByName(attach1).next() var files2 = DriveApp.getFilesByName(attach2).next() var options = {attachments:[files,files2]} GmailApp.createDraft(to,'Attachment example','Please see attached file.',options);
}
}
### 試したこと データ型の問題かと私なりにコードを色々書き直しましたが、 上記のコードで添付が一つの場合、実行出来るのに添付が二つになると上記エラーになる 理由が分からず頓挫してしまいました。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
・すべての行で、B列とC列の2列ともに、Googleドライブ上に存在するファイルを記載しているでしょうか?
・そのスプレッドシートに記載のファイルは、本当に正しくGoogleドライブ上に存在するファイルでしょうか?
B列またはC列のいずれか(又は両方が)空欄、ないし 存在しないファイルが指定されている場合、上記のエラーが発生します。
qnoir様
出来ましたーーーー。
GASが初心者過ぎてデータ型の問題かと思い、色々3日間試してみて堂々巡りで頓挫しておりました。
単純なファイル名の問題だったんですね。
teratail自体の使用方法もまだ完全に分かっておらず、お礼がうまくできず申し訳ありません。
ご丁寧なご回答、ありがとうございました。
回答1件
あなたの回答
tips
プレビュー