![見出し画像](https://assets.st-note.com/production/uploads/images/139346113/rectangle_large_type_2_4e23bff363a9e965886602a1e9f9ac1c.jpeg?width=1200)
スプレッドシートからメール_宛先を選択(その2)Cc/Bccも選択[GAS]
(以前の記事をリライトし新しい記事として公開しております。以前の記事は非公開にする予定です)
前回はスプレッドシート上で宛先を選択しメール送信するGASを紹介しました。
今回はその応用として、Cc/Bccも選択できるように構築します。
■シート[list]
列A_To (チェックボックス)
列B_Cc (チェックボックス)
列C_Bcc(チェックボックス)
列D_氏名
列E_メールアドレス
![](https://assets.st-note.com/img/1714703998743-7lnlP9dMJ2.png)
■シート[mail]
セルB1_件名
セルB2_本文
![](https://assets.st-note.com/img/1714706446023-zNZVdl5Mm2.png)
スクリプトはこちら。
function createMailData(doSend){
//スプレッドシート、および各シートを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
const listSheet = ss.getSheetByName('list')
const mailSheet = ss.getSheetByName('mail')
//mailSheetのセルB1-B2から件名、本文を取得
const subject = mailSheet.getRange(1, 2).getValue();
const body = mailSheet.getRange(2, 2).getValue();
//listSheetの最終行を取得、メアドを格納する変数recipient,cc,bccを準備
const lastRow = listSheet.getLastRow();
let recipient = '';
let cc = '';
let bcc = '';
//listSheetの列A-Cにチェックが入っていたらメアドを追加
for(let i = 2 ;i <= lastRow ; i++){
const checkTo = listSheet.getRange(i, 1).getValue();
const checkCc = listSheet.getRange(i, 2).getValue();
const checkBcc = listSheet.getRange(i, 3).getValue();
const address = listSheet.getRange(i, 5).getValue();
if(checkTo === true){
recipient += address + ',';
}
if(checkCc === true){
cc += address + ',';
}
if(checkBcc === true){
bcc += address + ',';
}
}
if (doSend) {
GmailApp.sendEmail(recipient, subject, body, {cc:cc, bcc:bcc}); //送信
} else {
GmailApp.createDraft(recipient, subject, body, {cc:cc, bcc:bcc}); //下書き
}
}
function sendMail() {
//誤操作による誤送信防止のためにダイアログを実装
const ui = SpreadsheetApp.getUi();
const res = ui.alert("メール送信しますか?", ui.ButtonSet.OK_CANCEL);
if (res === ui.Button.CANCEL) {
return;
}
createMailData(true);
}
function createDraft() {
createMailData(false);
}
function onOpen(){
SpreadsheetApp.getUi()
.createMenu('スクリプト')
.addItem('メール送信', 'sendMail')
.addItem('下書き作成', 'createDraft')
.addToUi();
}
メール件名/本文は変わらず、To/Cc/Bccが都度変動するような場合に便利です。
この記事が気に入ったらサポートをしてみませんか?