Google スプレッドシートでデータを操作するための Apps Script の完全かつ包括的なガイド
Google スプレッドシートは、データの管理、分析、そしてビジネスや個人のタスクの効率化に非常に強力なツールです。その中で Google Apps Script は、スプレッドシートの自動化やカスタマイズを可能にする強力なツールです。このガイドでは、Google スプレッドシートを利用したデータ操作の基本から応用までを学び、Apps Script の使用方法を詳細に説明します。

Google Apps Script とは?
Google Apps Script は、Google の製品(Gmail、Google ドキュメント、Google スプレッドシートなど)を自動化したり、拡張機能を作成したりするための JavaScript ベースのスクリプト言語です。Google スプレッドシートのデータを操作するために Apps Script を使用することで、手動で行っていた繰り返し作業を効率化し、データの操作や整理を自動化することができます。
1. Google スプレッドシートの基本操作
Google スプレッドシートでデータを操作するための基本的な操作をいくつか紹介します。これらは Apps Script を使用する際の基礎となります。
データの取得
スプレッドシートのデータを取得する基本的な方法は以下の通りです。
javascript// スプレッドシートを開く
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// 範囲を指定してデータを取得
var data = sheet.getRange("A1:B10").getValues();
Logger.log(data);
上記のコードは、現在アクティブなスプレッドシートの「A1:B10」の範囲に含まれるデータを取得し、それをログに表示する例です。
セルへのデータ書き込み
データを書き込むためには setValue()
や setValues()
メソッドを使用します。
javascript// 特定のセルに値を書き込む
sheet.getRange("A1").setValue("こんにちは");
// 範囲に複数のデータを書き込む
var values = [
["名前", "年齢"],
["太郎", 25],
["花子", 30]
];
sheet.getRange("A2:B4").setValues(values);
このコードは、指定したセルに「こんにちは」と書き込むとともに、複数のデータを指定した範囲に書き込むものです。
行や列の追加
行や列を追加するには insertRowBefore()
や insertColumnBefore()
メソッドを使います。
javascript// 新しい行を挿入
sheet.insertRowBefore(2); // 2行目の前に新しい行を挿入
// 新しい列を挿入
sheet.insertColumnBefore(3); // 3列目の前に新しい列を挿入
データの削除
行や列、セルのデータを削除することも簡単です。
javascript// 行を削除
sheet.deleteRow(2); // 2行目を削除
// 列を削除
sheet.deleteColumn(3); // 3列目を削除
// セルのデータを削除
sheet.getRange("A1").clearContent(); // A1セルの内容を削除
2. Google Apps Script を使った高度なデータ操作
基本的な操作に加え、Google Apps Script を使った高度なデータ操作方法を学びます。これには条件付き書式の設定、データのフィルタリング、外部 API との連携などが含まれます。
条件付き書式の設定
データに基づいてセルの書式を自動的に変更することができます。例えば、数値が一定の値以上である場合にセルの色を変えるといった操作です。
javascriptvar range = sheet.getRange("A1:A10");
var rule = SpreadsheetApp.newConditionalFormatRule()
.whenNumberGreaterThan(50)
.setBackground("#FF0000")
.setRanges([range])
.build();
var rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
このコードは、A1:A10 の範囲内で50より大きい値を持つセルの背景色を赤色に設定します。
フィルタリング
Google スプレッドシートでは、特定の条件に基づいてデータをフィルタリングできます。getFilter()
と setFilter()
を使用して、スプレッドシートのフィルタを操作できます。
javascript// フィルタを設定
var range = sheet.getRange("A1:B10");
var filter = range.createFilter();
filter.setColumnFilterCriteria(1, SpreadsheetApp.newFilterCriteria().whenTextContains("太郎"));
このコードは、A列に「太郎」というテキストが含まれている行をフィルタリングします。
外部 API との連携
Google Apps Script では外部 API と連携することができます。これにより、外部データをスプレッドシートに自動的にインポートしたり、データを外部サービスに送信したりできます。
javascriptfunction getApiData() {
var url = "https://api.example.com/data";
var response = UrlFetchApp.fetch(url);
var json = JSON.parse(response.getContentText());
Logger.log(json);
}
このコードは、外部 API からデータを取得し、そのデータをログに表示します。
3. スプレッドシートの自動化とトリガー
Apps Script を使用して、特定の時間に自動で処理を実行することができます。これには「時間主導型トリガー」や「編集トリガー」を使用します。
時間主導型トリガーの設定
javascriptfunction createTimeDrivenTriggers() {
ScriptApp.newTrigger('myFunction')
.timeBased()
.everyMinutes(10)
.create();
}
function myFunction() {
Logger.log("10分ごとに実行される関数");
}
このコードは、10分ごとに myFunction
を実行する時間主導型トリガーを作成します。
編集トリガー
javascriptfunction onEdit(e) {
var range = e.range;
var sheet = e.source.getActiveSheet();
Logger.log('セルが編集されました: ' + range.getA1Notation());
}
このコードは、スプレッドシートが編集されるたびに実行され、編集されたセルの情報をログに記録します。
4. データのバックアップと復元
データをバックアップしたり、特定のタイミングで復元するためのスクリプトを作成することもできます。
javascript// データをバックアップする
function backupData() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
var backupSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('バックアップ');
if (!backupSheet) {
backupSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet('バックアップ');
}
backupSheet.clear(); // 既存のバックアップデータを削除
backupSheet.getRange(1, 1, data.length, data[0].length).setValues(data);
}
このコードは、現在のシートのデータを「バックアップ」という新しいシートにコピーします。
5. 結論
Google Apps Script を使えば、Google スプレッドシートでのデータ操作を大幅に効率化することができます。データの取得や書き込みから、高度な自動化、外部 API との連携まで、さまざまな機能を活用することができます。スプレッドシートの自動化により、日々の作業を効率化し、時間を節約することができます。