🤖
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