毎朝8時にレポートをGmailで自動送信するGASテンプレート

Sheet Lab GAS

📧

毎朝8時にレポートをGmailで自動送信するGASテンプレート

GAS 🕐 約5分 ← Sheet Lab に戻る

スプレッドシートの集計データを毎朝メールで送る作業は、GASで完全自動化できます。以下のテンプレートをコピペして宛先と時刻を設定するだけで、翌朝から自動送信が始まります。

完成するもの

  • 毎朝8時に自動でGmailが送信される
  • スプレッドシートの指定範囲のデータをメール本文に整形して送る
  • 宛先・件名・対象シートはスクリプトの先頭で設定するだけ

テンプレートコード

// ======== 設定(ここだけ変更する)========
const CONFIG = {
  TO:        'report@example.com',   // 送信先メールアドレス
  CC:        '',                      // CC(不要なら空欄のまま)
  SHEET_NAME: '日報',                 // データが入っているシート名
  DATA_RANGE: 'A1:D20',              // 送信するデータの範囲
  SUBJECT_PREFIX: '【日報】',         // 件名の前につけるテキスト
};
// ==========================================

function sendDailyReport() {
  const today = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy/MM/dd');

  // スプレッドシートからデータを取得
  const ss    = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName(CONFIG.SHEET_NAME);
  if (!sheet) {
    console.log('シートが見つかりません: ' + CONFIG.SHEET_NAME);
    return;
  }

  const data = sheet.getRange(CONFIG.DATA_RANGE).getValues();

  // データをテキストに整形
  let body = `${today} の日報です。nn`;
  data.forEach(row => {
    // 空行はスキップ
    if (row.every(cell => cell === '')) return;
    body += row.join('t') + 'n';
  });
  body += 'n---nこのメールはGASにより自動送信されています。';

  // メール送信
  GmailApp.sendEmail(
    CONFIG.TO,
    CONFIG.SUBJECT_PREFIX + today,
    body,
    CONFIG.CC ? { cc: CONFIG.CC } : {}
  );

  console.log('送信完了: ' + today);
}

設定手順

  1. スプレッドシートを開く → 拡張機能 → Apps Script
  2. 上のコードをエディタに貼り付ける
  3. CONFIG の TO・SHEET_NAME・DATA_RANGE を変更する
  4. 「実行」ボタンで動作確認(承認を求められたら許可する)
  5. Gmailに届いたことを確認

トリガーの設定(毎朝自動実行)

  1. エディタ左の時計アイコン → トリガーを追加
  2. 実行する関数:sendDailyReport
  3. イベントのソース:時間主導型
  4. 時間ベースのトリガーのタイプ:日付ベースのタイマー
  5. 時刻:午前8時〜9時
  6. 保存

これで翌朝8時〜9時の間に自動送信が始まります。

HTMLメールに変更する(応用)

表形式のきれいなメールを送りたい場合は、GmailApp.sendEmail の第4引数に htmlBody を追加します。

GmailApp.sendEmail(
  CONFIG.TO,
  CONFIG.SUBJECT_PREFIX + today,
  body,         // テキスト版(HTMLが表示できない環境用)
  {
    htmlBody: `<h2>${today} 日報</h2><table>...</table>`,
    cc: CONFIG.CC
  }
);

エラー通知を自分に送る

エラーが発生しても気づかないことがあります。try-catchでエラーを自分宛に通知しましょう。

function sendDailyReport() {
  try {
    // ... 本処理 ...
  } catch (e) {
    GmailApp.sendEmail(
      'admin@example.com',
      '【エラー】日報送信に失敗しました',
      e.message + 'nn' + e.stack
    );
  }
}

次のステップ

メール通知ができたら、フォーム→Chatwork通知に挑戦しましょう。申請受付などの業務に使えます。

Free Newsletter

AIを業務に活かしたいなら
SMR-Labメルマガ

毎週火曜10時、コピペで使えるChatGPTプロンプト・
GASテンプレートをお届け。登録は1分・完全無料。

▶ 無料で登録する

📧 無料メルマガ登録

DX・AI活用のヒントを週1回お届け。登録特典:すぐ使えるプロンプト集&GASテンプレート。

登録情報は第三者に提供しません。いつでも配信停止できます。

目次