Google Apps Scriptでスプレッドシートにデータを書き込む方法を徹底解説

Google Apps Script(GAS)は、Googleの各種サービスを自動化できる便利なツールです。中でも「スプレッドシートへのデータ書き込み」は、業務効率化や個人作業の自動化に非常に役立ちます。本記事では、GASを使ってスプレッドシートにデータを書き込む基本の書き方から、応用的な使い方まで詳しく解説していきます。これからGASを始めたい方、スプレッドシート操作を自動化したい方に向けて、わかりやすく手順を紹介します。

スプレッドシートへの書き込みとは?

Google Apps Script(GAS)を使えば、Google スプレッドシートに対してプログラムで直接データを入力することができます。
たとえば、フォームから受け取ったデータを自動で記録したり、毎日のレポートを自動生成したりすることが可能です。
人の手を介さずにデータ処理を行うことで、ミスを減らし、作業時間も短縮できます。

この章では、まず「なぜスプレッドシートへの書き込みをGASで行うのか」について簡単に整理しておきましょう。

  • 作業の自動化ができる
  • 大量のデータ処理も素早く完了できる
  • 人的ミスを防げる
  • 外部システムと連携できる(APIとの連携など)

これらのメリットを活かすために、GASをマスターしていきましょう。


Google Apps Scriptの基本設定

まずはGASでスプレッドシート操作を行うための基本設定をしていきます。

スプレッドシートの準備

  1. Google ドライブにアクセスし、新規でスプレッドシートを作成します。
  2. 適当な名前(例:データ書き込みテスト)を付けて保存しましょう。

スクリプトエディタの起動

  1. スプレッドシート上部メニューから「拡張機能」→「Apps Script」をクリック。
  2. スクリプトエディタが開きますので、ここにコードを書いていきます。

これで、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によるスプレッドシート操作をマスターしておきましょう!

タイトルとURLをコピーしました