Google Apps Script(GAS)は、Googleの各種サービスを自動化できる便利なツールです。中でも「スプレッドシートへのデータ書き込み」は、業務効率化や個人作業の自動化に非常に役立ちます。本記事では、GASを使ってスプレッドシートにデータを書き込む基本の書き方から、応用的な使い方まで詳しく解説していきます。これからGASを始めたい方、スプレッドシート操作を自動化したい方に向けて、わかりやすく手順を紹介します。
スプレッドシートへの書き込みとは?
Google Apps Script(GAS)を使えば、Google スプレッドシートに対してプログラムで直接データを入力することができます。
たとえば、フォームから受け取ったデータを自動で記録したり、毎日のレポートを自動生成したりすることが可能です。
人の手を介さずにデータ処理を行うことで、ミスを減らし、作業時間も短縮できます。
この章では、まず「なぜスプレッドシートへの書き込みをGASで行うのか」について簡単に整理しておきましょう。
- 作業の自動化ができる
- 大量のデータ処理も素早く完了できる
- 人的ミスを防げる
- 外部システムと連携できる(APIとの連携など)
これらのメリットを活かすために、GASをマスターしていきましょう。
Google Apps Scriptの基本設定
まずはGASでスプレッドシート操作を行うための基本設定をしていきます。
スプレッドシートの準備
- Google ドライブにアクセスし、新規でスプレッドシートを作成します。
- 適当な名前(例:データ書き込みテスト)を付けて保存しましょう。
スクリプトエディタの起動
- スプレッドシート上部メニューから「拡張機能」→「Apps Script」をクリック。
- スクリプトエディタが開きますので、ここにコードを書いていきます。
これで、GASを使ってスプレッドシートを操作する準備が整いました。
シンプルなデータ書き込みコード例
まずは最も基本的な「データ1件を書き込む」コード例を紹介します。
function writeDataSimple() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange(1, 1).setValue('こんにちは、世界!');
}
このスクリプトを実行すると、スプレッドシートのA1セルに「こんにちは、世界!」と書き込まれます。
コード解説
SpreadsheetApp.getActiveSpreadsheet()
→ 現在開いているスプレッドシートを取得.getActiveSheet()
→ アクティブなシート(現在表示しているシート)を取得.getRange(1, 1)
→ (行, 列) を指定して、セル範囲を取得.setValue('データ')
→ セルに値を書き込む
これが基本の書き込みパターンです。
複数のデータを書き込む方法
次は、複数のデータをまとめて書き込む方法を紹介します。
function writeMultipleData() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = [
['名前', '年齢', '性別'],
['田中太郎', 28, '男性'],
['山田花子', 24, '女性']
];
sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
}
このスクリプトを実行すると、A1からC3までに表形式でデータが一気に書き込まれます。
コード解説
getRange(開始行, 開始列, 行数, 列数)
→ 範囲を指定.setValues(配列)
→ 二次元配列の形でデータをまとめてセット
データが多い場合はこの方法が圧倒的に効率的です。
既存データの最終行に追記する方法
「毎回、表の最後にデータを追加したい!」というケースもよくあります。
その場合は、次のようなコードを使います。
function appendData() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = ['佐藤一郎', 30, '男性'];
sheet.appendRow(data);
}
コード解説
appendRow(配列)
→ シートの最後の行にデータを1行追加
これで、スプレッドシートに新しい行が自動で追加されていきます。
特定のシートにデータを書き込む方法
複数シートがある場合、特定のシートに書き込みたいこともあります。
function writeToSpecificSheet() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('データシート');
sheet.getRange(1, 1).setValue('特定シートへの書き込み成功');
}
ポイントは、getSheetByName('シート名')
を使ってシートを指定するところです。
シート名が正確でないとエラーになるので注意しましょう。
スプレッドシートに自動で日付を書き込む
業務でよくある「日付記録」を自動で行いたい場合のコード例です。
function writeDate() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var now = new Date();
sheet.getRange(1, 2).setValue(now);
}
このスクリプトを実行すると、B1セルに現在の日付と時刻が記録されます。
ポイントは、JavaScriptの標準オブジェクトDate()
を使う点です。
エラーを防ぐために注意すべきポイント
スプレッドシートへの書き込みでは、いくつか注意すべき点があります。
- 範囲指定ミス
getRange
で範囲を間違えると、意図しない場所に書き込まれる可能性があります。 - シート名のスペルミス
getSheetByName
はシート名が1文字でも違うとエラーになります。 - アクセス権限の設定
初回実行時はGASに対して「スプレッドシートにアクセスする権限」を与える必要があります。
これらを事前に理解しておくと、スムーズに作業を進めることができます。
よくある応用例を紹介
最後に、実務でよく使われる応用例をいくつか紹介します。
- Googleフォーム連携
フォームからの回答をスプレッドシートにリアルタイムで記録。 - 定時レポート作成
毎朝決まった時間に、最新データをスプレッドシートに書き出してメール送信。 - データ整理・変換
他シートからデータを取得して、指定フォーマットに変換・出力。
こうした応用も、今回紹介した基本操作を組み合わせれば実現できます。
【まとめ】
Google Apps Scriptでスプレッドシートにデータを書き込む方法は、基本さえ押さえればとてもシンプルです。
単純なセルへの書き込みから、表形式での一括出力、最終行への追記、自動日付入力など、さまざまなニーズに対応できます。
業務効率化を目指すなら、ぜひこの機会にGASによるスプレッドシート操作をマスターしておきましょう!