🤖

GASで毎朝のレポートを自動送信する手順【スプレッドシート+Gmail連携】

に公開

はじめに

毎朝の定型レポート送信は、毎日5分でも積み重なると、
1日5分 × 20営業日で、月に1時間40分、1年で約20時間
と大きな時間ロスになります。

そこで今回はこの毎日の作業を削減する方法として、
Google Apps Script(GAS)を使った自動メール送信の手順 を紹介します。
コードは10行程度。Googleアカウントとスプレッドシート、Gmailだけで再現可能です。

STEP0. 用意するもの

  • Googleアカウント ※ 無料アカウントでも可
  • レポート用スプレッドシート
    今回のサンプル↓
  • Gmail
    ※Google Workspace環境の会社アドレスでも使用可
     但し社内のセキュリティ規約に順守してご利用ください。

STEP1. GASスクリプトを書く

スプレッドシートを開き、メニューの「拡張機能 → Apps Script」をクリックします。

開いた画面で以下コードを貼り付けてください。
※ デフォルトで「コード.gs」というファイルが開きます(ファイル名は変えてもOK)

function sendDailyReport() {
  // 「レポート」シートを取得
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('レポート');
  // データを取得(ヘッダーは除外)
  const data = sheet.getDataRange().getDisplayValues().slice(1);

  // メール本文を作成
  let body = '【本日のレポート】\n\n';
  data.forEach(row => {
    const [name, meetings, deals, comment] = row;
    body += `${name}:商談 ${meetings}件、成約 ${deals}件\nコメント:${comment}\n\n`;
  });

  // メール送信(宛先と件名を設定)
  GmailApp.sendEmail('example@example.com', '本日のレポート', body);
}

ポイント:

  • SpreadsheetApp と GmailApp でスプレッドシートとGmailの操作を実施
  • getSheetByName() の引数(上記では「レポート」)を実際のシート名に合わせる必要がある
  • getDisplayValues() でセルの表示形式をそのまま取得
  • .slice(1)でヘッダーを除外
  • data.forEach()で各行のデータを一行ずつ出力

STEP2. トリガーを設定して自動化する

左側メニューの「トリガー」から、以下を設定します。

  • 関数名:sendDailyReport
  • イベントの種類:時間主導型
  • 実行タイミング:午前8時 など

これで、毎朝指定時刻に自動でメールが送信されます。

実行結果

指定したアドレス宛にメールが届きました。

応用例:現場の自動化にすぐ使えるパターン

この仕組みは、レポート送信以外にも幅広く応用可能です。

  • 件名に日付を入れる、集計結果を送信
  • 日報を複数人に一斉送信
  • 特定の条件(例:売上が目標未達の場合)で送信
  • Googleフォームの回答をまとめて自動送信
  • 他ツール(slack,teams等)への通知

まとめ

GASを使えば、「朝の5分仕事」をわずか10行ほどのコードで自動化できます。
スプレッドシートやGmailなど、身近なツールと連携でき、環境構築も不要。
さらに、一度作ったスクリプトは再利用・拡張がしやすく、業務に合わせて成長させられます。
是非GASで身近な業務改善を始めてみてください。

参考書籍

Discussion