Googleスプレッドシートで簡単リマインダー!GASを使ったメール通知の方法
GASを使ってGoogleスプレッドシートからメールを送信する方法って難しいのかな?リマインドメールを自動で送りたいんだけど…

猫男

catman
心配しなくていいさ、猫男くん。catmanがGASを使ったスプレッドシートからのメール送信の仕組みを教えてやろう!
GASでスプレッドシートからメール送信を始める
Google Apps Script(GAS)を用いることで、Googleスプレッドシートから直接メールを送信することが可能だ。まずは基本的な設定を見てみよう。
1. GASプロジェクトの作成
GASプロジェクトをスプレッドシートに紐付ける必要がある。スプレッドシートを開き、「拡張機能」→「Apps Script」を選択する。
2. メール送信用のGASコードを書く
以下のコードを使えば、スプレッドシートからメールを送信できるようになる。
function sendReminderEmails() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
for (var i = 1; i < data.length; i++) {
var email = data[i][0]; // スプレッドシートの最初の列にメールアドレスがあると仮定
var subject = "リマインドメール";
var body = "忘れずにタスクを完了してください!";
if (email) {
GmailApp.sendEmail(email, subject, body);
}
}
}
このスクリプトはスプレッドシートのデータを読み込み、最初の列にあるメールアドレスに対してリマインドメールを送信するものだ。
なんだか簡単そうだね!スプレッドシートから情報を取得してメールを送るだけなんだ。

猫男
GASコードをトリガーで自動実行する
コードを書くだけでなく、自動的に実行されるようにするためには、トリガーを設定しよう。
1. トリガーの設定
スクリプトエディタの「トリガー」ボタンをクリックし、「トリガーを追加」から新しいトリガーを設定できる。今回のケースでは、毎日決まった時間にリマインドメールを送りたいので、時間ベースのトリガーを設定しよう。
2. トリガーでのスクリプト自動実行
トリガーを設定することで、リマインドメールを自動化できる。これにより手動で実行する手間を省け、自動化が実現される。

catman
トリガーを使えば、忘れずに毎日リマインドメールが送られるようになるから便利さが増すわけだ。
練習問題:スプレッドシートでメールリマインドを設定する方法
以下の問題に取り組んで、GASを使ったメール送信と自動化の理解を深めよう。
- GASを使って自分のGoogleスプレッドシートからテストメールを送ってみよう。
- 送信先のメールアドレスがB列にが入力されている場合のGASコードはどうなりますか?
- コードを変更して、メールの件名にスプレッドシートのC列のデータを使用するようにしてみよう。
解答と解説
function sendReminderEmails() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
for (var i = 1; i < data.length; i++) {
var email = data[i][1]; // B列のメールアドレス
var subject = data[i][2]; // C列の件名
var body = "忘れずにタスクを完了してください!";
if (email) {
GmailApp.sendEmail(email, subject, body);
}
}
}
解説:
まず、SpreadsheetApp.getActiveSpreadsheet()で現在アクティブなスプレッドシートを取得する。
次に、getDataRange().getValues()でスプレッドシートの全データを二次元配列として取得する。
ループ内では、B列からメールアドレス、C列から件名を読み込む。
最後に、GmailApp.sendEmail()を使ってメールを送信する。