一つのシートのスクリプトのファイル内にコピーして3つ「function pushSendButton」
「function pushSendButton1」「function pushSendButton2」を作っています。
エラーコードは出ないのですが、「function pushSendButton(無印)」を実行すると、
「同名2」でアクティブにしているシートの内容をひっぱってきてしまいます。
アクティブにしているシートは、「PCR1」「PCR1-sashikomi」でこれも1~3まであります。
同名なのが悪いのでしょうか。
ネットで公開されていた下記のスクリプトをコピペして必要なところだけ変えたド素人なので、
そもそもひとつのスプレッドシートには1つしかこういった機能を設定できないものなのか、
シート名やfunction名が出ない物なのかわかりません。
ご教授どうぞよろしくお願い致します。
--------------------------------------
♯ function pushSendButton() {
/* スプレッドシートのシートを取得と準備 */
var ss = SpreadsheetApp.getActiveSpreadsheet(); //このスプレッドシート
var mainSheet = ss.getSheetByName("PCR1"); //メインシート
var skSheet = ss.getSheetByName("PCR1-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("PCR1"); // メインシート
var skSheet = ss.getSheetByName("PCR1-sashikomi"); // 差込シート
var skEndRow = skSheet.getDataRange().getLastRow(); // シートの使用範囲のうち最終行を取得
var attachedFileId = mainSheet.getRange(7, 2).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(); // $1
var sk2 = skSheet.getRange(i, 5).getValue(); // $2
var sk3 = skSheet.getRange(i, 6).getValue(); // $3
var sk4 = skSheet.getRange(i, 7).getValue(); // $4
var sk5 = skSheet.getRange(i, 8).getValue(); // $5
var sk6 = skSheet.getRange(i, 9).getValue(); // $6
♯♯♯♯♯♯ // 差込を反映
strSubjectIns = strSubject.replace(/$1/g, sk1).replace(/$2/g, sk2).replace(/$3/g, sk3).replace(/$4/g, sk4).replace(/$5/g, sk5).replace(/$6/g, sk6); //タイトル
strBodyIns = strBody.replace(/$1/g, sk1).replace(/$2/g, sk2).replace(/$3/g, sk3).replace(/$4/g, sk4).replace(/$5/g, sk5).replace(/$6/g, sk6); //本文
♯♯♯♯♯♯♯ /* メール送信 */
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("送信が完了しました。");
}