日報や売上レポートを自動化したい人におすすめ
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)を使えば、スプレッドシートの内容を元に、日次・週次のレポートメールを自動送信する仕組みを簡単に構築できます。
毎日手動でメールを作成していた業務を自動化することで、作業時間の短縮とヒューマンエラーの削減が期待できます。
コメント