【超効率化】GASで週報を自動作成する方法|スプレッドシート&メール連携まで徹底解説!

「毎週、週報を書くのがめんどくさい…」
「同じような内容を手打ちしていて、時間がもったいない!」
そんなあなたにぴったりの解決策が、Google Apps Script(GAS)を使った週報の自動作成です。

この記事では、初心者でもできるGASによる週報自動化の仕組みを、サンプルスクリプト付きでわかりやすく解説します!
スプレッドシート、メール連携、リマインドまで、完全自動運用ができる未来を手に入れましょう!


1. なぜ週報作成をGASで自動化するのか?

週報作成にかかる時間、意外とバカになりません。

  • 書くたびに同じ形式を整える

  • 毎週データをまとめ直す

  • つい提出を忘れるリスクもある

これを放置していると、作業時間のムダ+ミス+ストレスがどんどん蓄積します。

GASを使えば、

  • ワンクリックで週報作成

  • スプレッドシートからデータ自動取得

  • メール自動送信で提出漏れゼロ

と、週報にかける時間をほぼゼロにできます!


2. 【準備編】週報自動化に必要なもの

  • Googleアカウント

  • Googleスプレッドシート(作業記録用)

  • Google Apps Script(標準搭載)

すべて無料、しかもブラウザだけで完結!
今日からすぐに取り組めます。


3. 【設計編】週報自動作成の全体像を把握しよう

まずは、作るシステムのイメージを整理しましょう。

■ 自動週報の基本フロー

  1. スプレッドシートに日々の作業を記録

  2. 週末にGASが対象データを集計

  3. テンプレートに沿って週報を自動生成

  4. 自動的にメール送信(または保存)

これだけで、完全自動で週報が完成します!


4. 【実装編】GASで週報自動作成スクリプトを書く

さっそく、実際に動かせるスクリプトを紹介します!


ステップ① スプレッドシートを準備

まずは作業記録用シートを作成。
以下のような列を用意します。

| 日付 | 作業内容 | 備考 |

毎日簡単に入力するだけでOK!


ステップ② Apps Scriptエディタを開く

スプレッドシート上部メニューから
「拡張機能」→「Apps Script」→「新しいプロジェクト作成」


ステップ③ サンプルスクリプトを書く

① 週報本文を生成する関数

function createWeeklyReport() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const today = new Date();
  
  // 今週の月曜日と日曜日を計算
  const monday = new Date(today);
  monday.setDate(today.getDate() - today.getDay() + 1);
  monday.setHours(0, 0, 0, 0);
  
  const sunday = new Date(monday);
  sunday.setDate(monday.getDate() + 6);
  
  const data = sheet.getDataRange().getValues();
  let report = `【${monday.toLocaleDateString()}〜${sunday.toLocaleDateString()}の週報】\n\n`;
  
  for (let i = 1; i < data.length; i++) {
    const workDate = new Date(data[i][0]);
    if (workDate >= monday && workDate <= sunday) {
      report += `■ ${workDate.toLocaleDateString()}\n作業: ${data[i][1]}\n備考: ${data[i][2]}\n\n`;
    }
  }
  
  return report;
}

この関数を呼び出すと、
今週分の作業内容だけを自動でまとめた週報テキストが生成されます!


② メールで週報を自動送信する関数

function sendWeeklyReport() {
  const report = createWeeklyReport();
  const email = 'あなたの上司のメールアドレス@example.com';
  
  GmailApp.sendEmail(email,
    '【週報】' + new Date().toLocaleDateString(),
    report
  );
}

これを組み合わせれば、
作った週報を即座にメール送信できます!


ステップ④ トリガーを設定する

Apps Scriptエディタから

  • 実行関数:sendWeeklyReport

  • イベントソース:時間主導型

  • イベントタイプ:毎週金曜18時に実行

などに設定すれば、
毎週勝手に週報が作成&送信されるようになります!


5. 【応用編】さらに便利にするカスタマイズ例


✅ HTML形式の週報にする

メールをもっと見やすくしたい場合、HTMLフォーマットに変更できます。

GmailApp.sendEmail(email, '【週報】', '', {
  htmlBody: `<h2>今週の活動報告</h2><p>${report.replace(/\n/g, '<br>')}</p>`
});

✅ チームメンバーごとに自動振り分け

チーム別にスプレッドシートを分ければ、
それぞれ個別の週報を自動生成・送信する仕組みも作れます!


✅ 週報をGoogleドキュメントに保存

メール送信ではなく、
週報をGoogleドキュメントに保存して履歴管理することも可能です!

const doc = DocumentApp.create('週報_' + new Date().toLocaleDateString());
doc.getBody().setText(report);
doc.saveAndClose();

6. 【運用編】気をつけたいポイント


✔️ データ整形を丁寧に

スプレッドシートの入力ミス(空白や誤記)には注意。整形処理を少し加えるとさらに安定します。


✔️ トリガー設定ミスに注意

「時間主導型」トリガー設定は曜日・時刻の指定ミスに注意!
1度テスト送信してから本番運用に入りましょう。


✔️ メール送信件数制限に注意

GAS無料プランでは、1日あたりのメール送信上限(100通程度)があるので、運用規模に合わせて調整を。


7. まとめ|GASで週報作成を自動化すれば、毎週の負担が激減する!

GASで週報自動化すれば、

  • 書く手間ゼロ

  • 提出漏れゼロ

  • 作業時間大幅短縮

という最高の状態が手に入ります。

まずはこの記事の基本スクリプトを動かして、
慣れてきたら「HTML化」「チーム振り分け」「Googleドキュメント保存」など、どんどん高度化していきましょう!

Shop now