中級者向け実践:一般企業でのGAS自動化・効率化による週次レポート作成システム(部門利用)
本記事では、一般企業におけるGAS(Google Apps Script)を用いた週次レポート作成システムの構築について、中級者向けに解説します。部門内で共有し、効率的な情報共有と業務改善を目指します。
GASとは?
GAS(Google Apps Script)は、Google Workspaceの各種サービス(Gmail、スプレッドシート、ドキュメントなど)を連携させて、さまざまな処理を自動化できるスクリプト言語です。JavaScriptをベースとしているため、Web開発の経験がある方なら比較的容易に習得できます。
週次レポート作成システムの概要
本システムでは、以下の機能を実現します:
- スプレッドシートからのデータ収集
- レポートテンプレート(Googleドキュメント)へのデータ挿入
- PDF形式でのレポート生成
- Gmailによるレポートの自動送信
システム構築手順
1. スプレッドシートの準備
週次レポートの元となるデータを格納するスプレッドシートを作成します。例えば、以下のような構成にします:
- A列:日付
- B列:担当者
- C列:タスク内容
- D列:進捗状況
- E列:課題・問題点
2. レポートテンプレートの作成
Googleドキュメントでレポートのテンプレートを作成します。データ挿入箇所には、{{日付}}
、{{担当者}}
、{{タスク内容}}
などのプレースホルダーを記述します。
3. GASコードの作成
GASエディタを開き、以下のコードを記述します。
// スプレッドシートIDとドキュメントIDを設定
const SPREADSHEET_ID = "YOUR_SPREADSHEET_ID";
const DOCUMENT_ID = "YOUR_DOCUMENT_ID";
function createWeeklyReport() {
// スプレッドシートからデータを取得
const sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getActiveSheet();
const lastRow = sheet.getLastRow();
const data = sheet.getRange(2, 1, lastRow - 1, 5).getValues(); // 2行目からデータ取得
// レポートテンプレートを開く
const templateDoc = DocumentApp.openById(DOCUMENT_ID);
const body = templateDoc.getBody();
// 今日の日付を取得
const today = Utilities.formatDate(new Date(), "JST", "yyyy/MM/dd");
// データに基づいてレポートを作成
data.forEach(row => {
const date = Utilities.formatDate(row[0], "JST", "yyyy/MM/dd");
const staff = row[1];
const task = row[2];
const progress = row[3];
const issue = row[4];
// テンプレートをコピー
const newDoc = templateDoc.makeCopy(`${today}_${staff}_週次レポート`);
const newDocId = newDoc.getId();
const newBody = newDoc.getBody();
// プレースホルダーをデータで置換
newBody.replaceText("{{日付}}", date);
newBody.replaceText("{{担当者}}", staff);
newBody.replaceText("{{タスク内容}}", task);
newBody.replaceText("{{進捗状況}}", progress);
newBody.replaceText("{{課題・問題点}}", issue);
// PDFとして保存
const pdfBlob = newDoc.getAs('application/pdf');
// Google Driveに保存(必要に応じてフォルダIDを指定)
DriveApp.createFile(pdfBlob).setName(`${today}_${staff}_週次レポート.pdf`);
// ドキュメントを閉じる
DocumentApp.openById(newDocId).saveAndClose();
// 必要に応じてファイルを削除
DriveApp.getFileById(newDocId).setTrashed(true);
// メールで送信(必要に応じて宛先、件名、本文を編集)
MailApp.sendEmail({
to: "example@example.com",
subject: `${today}_${staff}_週次レポート`,
body: "週次レポートです。",
attachments: [pdfBlob]
});
});
}
ポイント:
YOUR_SPREADSHEET_ID
とYOUR_DOCUMENT_ID
は、実際のスプレッドシートIDとドキュメントIDに置き換えてください。MailApp.sendEmail
のto
、subject
、body
は、必要に応じて編集してください。
4. トリガーの設定
GASエディタの「トリガー」から、週次で実行されるようにトリガーを設定します。例えば、毎週金曜日の夕方に実行するように設定します。
応用例と活用シーン
- 進捗管理:各担当者のタスク進捗を可視化し、遅延状況を把握できます。
- 情報共有:チーム全体の状況を共有し、連携を強化できます。
- 業務改善:課題や問題点を分析し、改善策を検討できます。
まとめ
GASを用いることで、週次レポート作成を自動化し、大幅な効率化を実現できます。本記事を参考に、自社の業務に合わせたシステムを構築してみてください。