【Googleスプレッドシート】Apps Scriptで毎日自動メール送信!定期実行トリガーの設定

【Googleスプレッドシート】Apps Scriptで毎日自動メール送信!定期実行トリガーの設定
🛡️ 超解決

毎日のメール送信業務を手動で行っていると、つい忘れたり負担に感じることがあります。GoogleスプレッドシートとApps Scriptを組み合わせれば、決まった時刻に自動でメールを送信する仕組みを簡単に作れます。この記事では、時間主導型トリガーを使って毎日自動メールを送信する方法を、具体的なコード例とともに解説します。この記事を読めば、あなたもすぐにメール送信の自動化を始められます。

【要点】Apps Scriptの定期実行トリガーで毎日自動メールを送信する方法

  • 時間主導型トリガーの設定: スクリプトエディタの「トリガー」メニューから、実行したい関数と頻度(毎日・時刻)を指定します。
  • GmailApp.sendEmail関数: スプレッドシートのデータを読み取り、宛先・件名・本文を指定してメールを送信します。
  • 権限承認とエラーハンドリング: 初回実行時に権限の承認が必要です。また、送信制限やエラーに備えた処理も組み込みます。

ADVERTISEMENT

Apps Scriptで自動メール送信ができる仕組み

Google Apps Scriptは、Google Workspace製品(スプレッドシート、Gmail、カレンダーなど)を操作するためのJavaScriptベースのスクリプト言語です。スプレッドシートにスクリプトを組み込むことで、セルの値の読み書き、Gmail経由のメール送信、定期的な処理の自動実行などが行えます。特に「トリガー」機能を使えば、指定した時刻やイベントをきっかけに関数を自動起動できます。時間主導型トリガーは、毎日・毎週・毎月など特定の間隔で関数を実行するための仕組みです。これにより、手作業でメールを送信する必要がなくなります。

毎日自動メールを送信するための手順

スクリプトエディタでメール送信関数を作成する

  1. スプレッドシートを開く
    自動メールの送信元となるスプレッドシートを開きます。シートには宛先メールアドレス、件名、本文などのデータが入っていることを想定します。
  2. 拡張機能メニューからスクリプトエディタを開く
    メニューバーの「拡張機能」→「Apps Script」をクリックします。新しいタブでスクリプトエディタが開きます。
  3. メール送信関数を記述する
    デフォルトのコード.gsに以下のような関数を記述します。
    function sendDailyMail() {
    var sheet = SpreadsheetApp.getActiveSheet();
    var data = sheet.getDataRange().getValues();
    for (var i = 1; i < data.length; i++) {
    var row = data[i];
    var to = row[0]; // A列にメールアドレス
    var subject = row[1]; // B列に件名
    var body = row[2]; // C列に本文
    if (to && subject) {
    GmailApp.sendEmail(to, subject, body);
    }
    }
    }

    このコードは、アクティブなシートのデータを取得し、1行目以降の各行からメールアドレス、件名、本文を読み取って送信します。必要に応じてシート名の指定やエラーハンドリングを追加してください。
  4. スクリプトを保存する
    Ctrl+S(Windows)またはCmd+S(Mac)で保存します。プロジェクト名もわかりやすい名前に変更しておきます。

時間主導型トリガーを設定する

  1. トリガー設定画面を開く
    スクリプトエディタの左側メニューにある「トリガー」アイコン(時計マーク)をクリックします。
  2. 新しいトリガーを追加する
    右下の「トリガーを追加」ボタンをクリックします。
  3. 実行する関数とイベントソースを選択する
    「実行する関数」で先ほど作成した「sendDailyMail」を選びます。「イベントソース」は「時間主導型」を選択します。
  4. 頻度と時刻を指定する
    「時間ベースのトリガーのタイプ」で「日タイマー」を選び、「時刻の間隔」で希望の時刻(例:午前8時~9時)を選択します。毎日その時間帯に実行されます。
  5. トリガーを保存する
    「保存」をクリックします。初回は権限の承認が求められるので、手順に従って許可します。承認後、トリガーが有効になります。

自動メール送信で注意すべきポイント

1日あたりの送信制限を超えてしまう

Google Apps Scriptには、1日あたりのメール送信数に制限があります。無料アカウントでは1日100通まで、Google Workspaceアカウントでは1日1500通までです。大量のメールを送信する場合は、制限を超えないように計画するか、複数アカウントで分散する必要があります。また、送信前に現在の送信数をチェックする関数(MailApp.getRemainingDailyQuota)を使うと安全です。

トリガーの実行時刻がずれることがある

時間主導型トリガーは、指定した時間帯に実行されますが、正確な時刻は保証されません。例えば「午前8時~9時」に設定した場合、その1時間以内のどこかで1回実行されます。厳密な時刻指定が必要な場合は、代わりにCalendarのイベントトリガーや、外部のcronサービスを検討してください。

スクリプトのエラーが発生した場合の対処

スクリプト内でエラーが発生すると、それ以降の処理が止まります。try…catch文を使ってエラーハンドリングを組み込むことで、一部の行でエラーが起きても全体が停止しないようにできます。また、エラーが発生した際に自分宛てにメールで通知する仕組みも有効です。

ADVERTISEMENT

GUI設定とプログラム設定の比較

項目 GUIで設定 プログラムで設定
設定方法 スクリプトエディタのトリガー画面から追加 ScriptApp.newTrigger()でコード内に記述
柔軟性 簡単で視覚的だが、動的な設定変更は不便 実行時に動的にトリガーを作成・削除可能
利用シーン 固定のスケジュールでよい場合 条件に応じてトリガーを変えたい場合
推奨度 初心者におすすめ 上級者や動的制御が必要な場合

この記事では、毎日自動メールを送信するためのApps Scriptと時間主導型トリガーの設定手順を解説しました。まずスクリプトエディタでメール送信関数を作成し、トリガー設定画面から毎日実行するように指定します。注意点として、送信制限や実行時刻のずれ、エラーハンドリングを考慮することが重要です。GUI設定とプログラム設定の比較も参考に、自分の用途に合った方法を選んでください。次は、この仕組みを応用して、週次レポートの自動送信や条件付きメール送信にも挑戦してみるとよいでしょう。スプレッドシートとApps Scriptの組み合わせで、業務の自動化をさらに進められます。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。