GASでスプレッドシートの値を取得して自動でメール送信する方法

日報や売上レポートを自動化したい人におすすめ

Google スプレッドシートで数値や目標を管理していると、「この内容を毎日メールで共有したい」と思うことがあります。
Google Apps Script(GAS)を使えば、スプレッドシートのデータを自動で取得し、メールとして送信することが可能です。

この記事では、スプレッドシートの特定のセルの値を取得し、GASでレポートメールを自動送信する方法を紹介します。


実現できること(サンプル)

以下のようなスプレッドシートがあるとします:

セル内容値の例
B1月次目標まで2,000,000
B2残り日数23
B31日必要売上86,957

このデータをもとに、毎日次のようなメールを自動で送信できます。


件名:日次売上目標レポート(7月8日)
本文

月次目標まで:2,000,000円  
残り日数  :23日  
1日に必要な売上:86,957円

GASのスクリプト例

スクリプトエディタの開き方

  1. スプレッドシートのメニューから
    「拡張機能」→「Apps Script」を選択
  2. 以下のコードを貼り付けて保存します。
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の「時間主導型トリガー」を使います。

トリガーの設定手順

  1. スクリプト画面で「時計アイコン(トリガー)」をクリック
  2. 「トリガーを追加」

以下のように設定します:

項目設定内容
実行する関数sendDailyReport
実行するデプロイHead(デフォルトのままでOK)
イベントの種類時間主導型
時間の設定毎日・午前8時〜9時など

初回実行時のセキュリティ警告について

初めて GmailApp.sendEmail() などを使うと、Google から次のような警告が表示されます。

このアプリは Google で確認されていません

これは、開発者(あなた)が作ったアプリがまだ Google の審査を受けていないためです。
自分だけで使う場合は問題ありません

警告を回避して進む方法

  1. 「詳細」をクリック
  2. 「プロジェクト名に移動(安全ではないページ)」をクリック
  3. Google アカウントの許可を与える

応用例

  • 「達成率」や「昨日の実績」を追加
  • 全行をループして一覧表示する日報メール
  • HTML形式で整えたレポートメール
  • 複数宛先への同時送信
  • Slack や Chatwork への通知にも応用可能

まとめ

Google Apps Script(GAS)を使えば、スプレッドシートの内容を元に、日次・週次のレポートメールを自動送信する仕組みを簡単に構築できます。

毎日手動でメールを作成していた業務を自動化することで、作業時間の短縮とヒューマンエラーの削減が期待できます。

コメント

タイトルとURLをコピーしました