質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

1回答

1400閲覧

GASで複数宛先に異なる添付ファイルを送りたいです。

colloabito

総合スコア0

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2021/06/16 08:47

GAS初心者です。

ネットで検索したシートを加工して宛先ごとに添付するファイルを変えたいですが、色々試してもエラーになってしまいます。
正しい紐づけをご教示頂きたいです。

sashikomiシートI列より先に添付ファイルを最大4つ添付可能にしたいです。

function pushSendButton() { /* スプレッドシートのシートを取得と準備 */ var ss = SpreadsheetApp.getActiveSpreadsheet(); //このスプレッドシート var mainSheet = ss.getSheetByName("main"); //メインシート var skSheet = ss.getSheetByName("sashikomi"); //差込シート var skEndRow = skSheet.getDataRange().getLastRow(); //シートの使用範囲のうち最終行を取得 var count = skEndRow - 1; // 送信確認 var select = Browser.msgBox("メールを一括送信します!", count + "件のメールを送信しますが、よろしいですか?", Browser.Buttons.OK_CANCEL); if (select == 'ok') { sendEmail(); } if (select == 'cancel') { Browser.msgBox("送信をキャンセルしました"); } } function sendEmail() { /* スプレッドシートのシートを取得と準備 */ var ss = SpreadsheetApp.getActiveSpreadsheet(); // このファイル var mainSheet = ss.getSheetByName("main"); // メインシート var skSheet = ss.getSheetByName("sashikomi"); // 差込シート var skEndRow = skSheet.getDataRange().getLastRow(); // シートの使用範囲のうち最終行を取得 var attachedFileId = skSheet.getFileById(sashikomi).getValue(); // 添付ファイルのID /* メール基本データの設定 */ var strFrom = mainSheet.getRange(3, 2).getValue(); // fromメールアドレス var strSender = mainSheet.getRange(4, 2).getValue(); // 差出人の名前 var strSubject = mainSheet.getRange(5, 2).getValue(); // メールタイトル var strBody = mainSheet.getRange(6, 2).getValue(); // 本文 if (attachedFileId) { var attachedFile = DriveApp.getFileById(attachedFileId); // 添付ファイル } var strSubjectIns = ""; // 差込後のメールタイトル var strBodyIns = ""; // 差込後のメール本文 for (var i = 2; i <= skEndRow; i++) { // 差込シートの取得 var strToEmail = skSheet.getRange(i, 1).getValue(); // 送信先メール var strCc = skSheet.getRange(i, 2).getValue(); // CC var strBcc = skSheet.getRange(i, 3).getValue(); // BCC var sk1 = skSheet.getRange(i, 4).getValue(); // 差込① var sk2 = skSheet.getRange(i, 5).getValue(); // 差込② var sk3 = skSheet.getRange(i, 6).getValue(); // 差込③ var sk4 = skSheet.getRange(i, 7).getValue(); // 差込④ var sk5 = skSheet.getRange(i, 8).getValue(); // 差込⑤ var sk6 = skSheet.getRange(i, 9).getValue(); // 添付 // 差込を反映 strSubjectIns = strSubject.replace(/$1/g, sk1).replace(/$2/g, sk2).replace(/$3/g, sk3).replace(/$4/g, sk4).replace(/$5/g, sk5); //タイトル strBodyIns = strBody.replace(/$1/g, sk1).replace(/$2/g, sk2).replace(/$3/g, sk3).replace(/$4/g, sk4).replace(/$5/g, sk5); //本文 /* メール送信 */ if (attachedFileId) { // 添付ファイル有りの場合 GmailApp.sendEmail( strToEmail, //toアドレス strSubjectIns, //メールタイトル strBodyIns, //本文 { cc: strCc, //ccアドレス bcc: strBcc, //bccアドレス from: strFrom, //fromアドレス name: strSender, //差出人 attachments: attachedFile //添付ファイル } ); } else { // 添付ファイル無しの場合 GmailApp.sendEmail( strToEmail, //toアドレス strSubjectIns, //メールタイトル strBodyIns, //本文 { cc: strCc, //ccアドレス bcc: strBcc, //bccアドレス from: strFrom, //fromアドレス name: strSender, //差出人 } ); } } Browser.msgBox("送信が完了しました。"); }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

GAS

1attachments: [file1,file2,file4,file4] 2

のような配列形式で送信可能です。
最終列にIDを "xxx","xxx2","xxx3","xxx4"
のように入力してそれぞれの文字列からファイルを読み込み、配列に格納する感じですね。
4列確保するほうがいいかは考えどころです。

投稿2021/06/19 10:25

gas.engine

総合スコア608

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問