日報や売上レポートを自動化したい人におすすめ
Google スプレッドシートで数値や目標を管理していると、「この内容を毎日メールで共有したい」と思うことがあります。
Google Apps Script(GAS)を使えば、スプレッドシートのデータを自動で取得し、メールとして送信することが可能です。
この記事では、スプレッドシートの特定のセルの値を取得し、GASでレポートメールを自動送信する方法を紹介します。
実現できること(サンプル)
以下のようなスプレッドシートがあるとします:
| セル | 内容 | 値の例 |
|---|---|---|
| B1 | 月次目標まで | 2,000,000 |
| B2 | 残り日数 | 23 |
| B3 | 1日必要売上 | 86,957 |
このデータをもとに、毎日次のようなメールを自動で送信できます。
件名:日次売上目標レポート(7月8日)
本文:
月次目標まで:2,000,000円
残り日数 :23日
1日に必要な売上:86,957円
GASのスクリプト例
スクリプトエディタの開き方
- スプレッドシートのメニューから
「拡張機能」→「Apps Script」を選択 - 以下のコードを貼り付けて保存します。
function sendDailyReport() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const dateStr = Utilities.formatDate(new Date(), "Asia/Tokyo", "M月d日");
const goal = sheet.getRange("B1").getValue();
const daysLeft = sheet.getRange("B2").getValue();
const dailySales = sheet.getRange("B3").getValue();
const subject = `日次売上目標レポート(${dateStr})`;
const body = `
月次目標まで:${goal.toLocaleString()}円
残り日数 :${daysLeft}日
1日に必要な売上:${Math.round(dailySales).toLocaleString()}円
`;
GmailApp.sendEmail("your@email.com", subject, body);
}
解説
sheet.getRange("B1").getValue():セルの値を取得toLocaleString():3桁ごとにカンマを付けて表示GmailApp.sendEmail():メール送信
※送信先のメールアドレスは "your@email.com" を適宜変更してください。
自動送信の設定:トリガーを使う
毎日決まった時間に実行するには、GASの「時間主導型トリガー」を使います。
トリガーの設定手順
- スクリプト画面で「時計アイコン(トリガー)」をクリック
- 「トリガーを追加」
以下のように設定します:
| 項目 | 設定内容 |
|---|---|
| 実行する関数 | sendDailyReport |
| 実行するデプロイ | Head(デフォルトのままでOK) |
| イベントの種類 | 時間主導型 |
| 時間の設定 | 毎日・午前8時〜9時など |
初回実行時のセキュリティ警告について
初めて GmailApp.sendEmail() などを使うと、Google から次のような警告が表示されます。
このアプリは Google で確認されていません
これは、開発者(あなた)が作ったアプリがまだ Google の審査を受けていないためです。
自分だけで使う場合は問題ありません。
警告を回避して進む方法
- 「詳細」をクリック
- 「プロジェクト名に移動(安全ではないページ)」をクリック
- Google アカウントの許可を与える
応用例
- 「達成率」や「昨日の実績」を追加
- 全行をループして一覧表示する日報メール
- HTML形式で整えたレポートメール
- 複数宛先への同時送信
- Slack や Chatwork への通知にも応用可能
まとめ
Google Apps Script(GAS)を使えば、スプレッドシートの内容を元に、日次・週次のレポートメールを自動送信する仕組みを簡単に構築できます。
毎日手動でメールを作成していた業務を自動化することで、作業時間の短縮とヒューマンエラーの削減が期待できます。



コメント