Googleスプレッドシートで簡単リマインダー!GASを使ったメール通知の方法

GASを使ってGoogleスプレッドシートからメールを送信する方法って難しいのかな?リマインドメールを自動で送りたいんだけど…
猫男
猫男
catman
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
catman
トリガーを使えば、忘れずに毎日リマインドメールが送られるようになるから便利さが増すわけだ。

練習問題:スプレッドシートでメールリマインドを設定する方法

以下の問題に取り組んで、GASを使ったメール送信と自動化の理解を深めよう。

  1. GASを使って自分のGoogleスプレッドシートからテストメールを送ってみよう。
  2. 送信先のメールアドレスがB列にが入力されている場合のGASコードはどうなりますか?
  3. コードを変更して、メールの件名にスプレッドシートの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()を使ってメールを送信する。