送信用のデータを作る
送信用のデータを作成します。まず、スプレッドシートで「名前」「メールアドレス」「出勤日数」の表を作成します。
GASを開く
GASを開きます。スプレッドシートが完成したら、拡張機能から「Apps Script」を選択してGASを開きます。
コードを書いて実行する
コードを書き、実行します。以下のコードをスプレッドシートに書き込んでください(コードは下部に示されています)。
ボタンをクリックして実行します。フロッピーボタンでコードを保存し、「>実行」をクリックしてテストしてみてください。
function myFunction() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
const sheet = spreadsheet.getSheetByName('シート1')
var cell = sheet.getRange("A1");
const lastRow = sheet.getLastRow();
const lastColumn = sheet.getLastColumn();
const itemValues = sheet.getRange(2,1,lastRow-1,lastColumn).getValues();
for(let i = 0;i<lastRow-1;i++){
const recipient = itemValues[i][1];//送信先のメールアドレス
const subject = '○○の確認';//件名
const toName = itemValues[i][0];//送信先の担当者名
const body = '${toName}\n様\n'
+ '\nお世話になります。下記内容をご確認の上、不服がございましたらご連絡ください。\n' ;
+ '<table border><tr><th>金額</th><td>'+ itemValues[i][2].toString()+'</td></table>'
const options = { name: '経理担当 ヤマダ',htmlBody: body }; //送信者の名前
GmailApp.sendEmail(recipient, subject, body, options);
}
}
注意
const,var,letなどの使い分けは気にしてないのでいい感じにしてください。
経緯と応用
社内のお知らせや部署ごとのメール送信、営業用のメールなど、一括で多くのメールを送信したい場合に役立ちます。以前はPHPでウェブシステムを作成したり、配信メールやacmailerなどのツールを導入したりしていましたが、それほど必要な場合でもないことが多く、時間を無駄にしていました。そこで、GASを試してみたところ、簡単に実装できたので、共有したいと思いました。様々なシーンで活用していただければと思います。
参考
https://m-kenomemo.com/gas-getrange/
https://caymezon.com/gas-offset/