GASを使ったデータ取得とレポート生成

Google Apps Script(GAS)は、Googleサービスを自動化する強力なツールで、データ取得やレポート生成を簡単に行うことができます。このブログでは、GASを使用してGoogleスプレッドシートからデータを取得し、レポートを自動生成する方法を解説します。

 

moun45.hatenablog.com

 

データ取得の基本

まず、GASを使用してGoogleスプレッドシートからデータを取得する方法を紹介します。以下のステップで進めていきます。

1. スプレッドシートの特定

まず、データを取得するスプレッドシートを特定します。スプレッドシートのIDを使ってアクセスします。

// スプレッドシートIDとシート名
var spreadsheetId = 'YOUR_SPREADSHEET_ID';
var sheetName = 'シート1';

2. データの取得

次に、スプレッドシートからデータを取得します。

function getData() {
var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
var sheet = spreadsheet.getSheetByName(sheetName);
var dataRange = sheet.getDataRange();
var data = dataRange.getValues();
return data;
}

レポート生成の基本

データを取得したら、それを基にレポートを生成します。以下のステップで進めていきます。

1. レポート用のスプレッドシート作成

レポートを生成するための新しいスプレッドシートを作成します。

function createReportSheet() {
var reportSpreadsheet = SpreadsheetApp.create('レポート');
var reportSheet = reportSpreadsheet.getActiveSheet();
return reportSheet;
}

2. データの書き込み

取得したデータをレポート用のスプレッドシートに書き込みます。

function writeDataToReportSheet(data, reportSheet) {
reportSheet.getRange(1, 1, data.length, data[0].length).setValues(data);
}

3. レポートの整形

レポートを見やすくするために、書式設定を行います。例えば、ヘッダー行を太字にしたり、列幅を調整します。

function formatReportSheet(reportSheet) {
reportSheet.getRange('A1:Z1').setFontWeight('bold'); // ヘッダー行を太字に
reportSheet.autoResizeColumns(1, reportSheet.getLastColumn()); // 列幅を自動調整
}

全体の流れをまとめたスクリプト

以上のステップをまとめて、データ取得からレポート生成までの一連の処理を実行するスクリプトを作成します。

function generateReport() {
var data = getData(); // データの取得
var reportSheet = createReportSheet(); // レポート用のシート作成
writeDataToReportSheet(data, reportSheet); // データの書き込み
formatReportSheet(reportSheet); // レポートの整形
}

自動化の設定

GASのトリガー機能を使って、レポート生成を定期的に自動化することも可能です。例えば、毎週月曜日の午前9時にレポートを生成するトリガーを設定します。

function setTrigger() {
ScriptApp.newTrigger('generateReport')
.timeBased()
.everyWeeks(1)
.onWeekDay(ScriptApp.WeekDay.MONDAY)
.atHour(9)
.create();
}

まとめ

Google Apps Scriptを使用することで、データ取得とレポート生成を自動化し、業務の効率化を図ることができます。スプレッドシートのデータを取得し、新しいレポートシートに書き込むことで、定期的なレポート作成を簡単に行うことができます。この記事を参考にして、自分のニーズに合わせたレポート生成スクリプトを作成し、業務の効率化を進めましょう。

参考リンク

 

moun45.hatenablog.com