■このページを読んでわかること・対象者
〇対象者
業務などで同じ内容のメールを、複数の方に手動で送っている方。
一通送るのに2分~3分くらいなのが、全部まとめて1分ほどで送信できます。
〇このページを読んでわかること
実際のGASのコード
■GASを始める前に
[GAS]GAS(GoogleAPI)の始め方を確認して、スプレッドシートを作成しておいてください。
スプレッドシートは下記のような項目を作成してください。
〇メール本文の作成
GASでメールを送る際は、本文をドキュメントにあらかじめ用意しておきます。
ドキュメントを開く
ドキュメントIDのコピーをして、スプレッドシートの「B1」に貼り付けてください。
ドキュメントIDはURLのhttps:~~/d/○○○○/edit
の○○○○の部分になります。
■実際のコード
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];//0枚目のスプレッドシート「0始まり」
function sendMergeEmail(){
var result = Browser.msgBox("メールを送信します。", Browser.Buttons.OK_CANCEL);
if (result == "ok"){
// OKの場合に実行するスクリプトを入れる
var lastColum = sheet.getLastColumn();
var lastRow = sheet.getLastRow();
var startRow = 2;
var numRows = lastRow - 1;
var strFrom = "送信元のメールアドレス"; //送信元のメールアドレス
var strcc = "cc該当者"; //cc該当者
var dataRange = sheet.getRange(startRow,1,numRows,2); //データ取得範囲
var data = dataRange.getValues();
//var strTo = sheet.getRange(startRow,2) //startrrowの2行目からデータをとる
var docID = sheet.getRange(1,2).getValue(); //メール本文のドキュメント
//テンプレートテキストの取得
var docTemplate = DocumentApp.openById(docID); //ドキュメントからデータをとる
var strTemplate = docTemplate.getBody().getText(); //ドキュメントをメールで送る本文に設定する
for (var i = 0; i < data.length; ++i) { //配列の0個めから配列のMaxまで繰り返す
var row = data[i];
row.rowNumber = i + startRow; //数え始めはstartrowで設定したところが0.0になります
//Result列がブランクであれば処理を実行
if (!row[0]) {
var result = "";
try
{
var strVal1 = row[2]; //変数は1行目の所から取得します
//テンプレートテキスト内の変数を置換
var strBody = strTemplate.replace("\{VALUE1\}",strVal1).replace("\{VALUE2\}",strVal2).replace("\{VALUE3\}",strVal3);
var strTo = row[2] //宛先行
var options = {name:"送信元の表示名:"};
options.cc = strcc;
options.from = strFrom;
//メール送信実行
GmailApp.sendEmail(strTo,"メールタイトル",strBody,options);
result = "送信済み";
result2 = new Date()
}catch(e){
result = "Error:" + e;
}
//実行結果をResult列にセット
sheet.getRange(row.rowNumber,1).setValue(result);
}
}
}
}
■最後に
いかがでしたか
うまく作成できると、一つずつ手動で作成するのが馬鹿らしくなると思います。
最初はコピペでも良いので、少しずつコードの読み書きができるようになりましょう。
created by Rinker
¥2,860
(2024/12/04 02:59:12時点 楽天市場調べ-詳細)
コメント