GAS オブジェクト連携完全ガイド|JSON操作・API連携・スプレッドシート実務まで解説

2026年5月25日月曜日

GAS JavaScript プログラミング

t f B! P L

GAS オブジェクト連携完全ガイド|JSON操作・API連携・スプレッドシート実務まで解説

GAS(Google Apps Script)を触り始めた頃、多くの人が最初に覚えるのは「配列処理」です。

ただ、実務に入るとすぐに壁が来ます。

スプレッドシートの列が増える。APIから大量データを取得する。検索や集計ロジックが複雑になる。

そんなとき必要になるのが、 「オブジェクト連携(JSON風データ操作)」です。

旅行で例えるなら、ただ地図を見る段階から「旅全体のルート設計」を始める感覚。 コードも同じで、データ構造を理解すると一気に景色が変わります。

この記事ではGAS実務で頻出する、 オブジェクト・JSON・API連携・reduce活用 まで本番レベルで解説します。


GASのオブジェクトとは?初心者向け基本解説

オブジェクトとは、 「キー」と「値」をセットで管理するデータ構造です。

GAS オブジェクト基本例


let user = {
  name: "鈴木",
  age: 30
};

イメージとしてはこんな形です。


{
  キー: 値,
  キー: 値
}

配列が「順番で管理する箱」なら、 オブジェクトは「意味を持った情報の集合」です。

「0番目が名前、1番目が年齢だっけ…?」

こんな迷いが消えるだけでも保守性が劇的に変わります。


JSONとは?GAS実務で重要なデータ形式

JSON(JavaScript Object Notation)は、 データ交換で使われる標準的な形式です。


{
  "name":"鈴木",
  "age":30
}

GASを使っていると、 ほぼ毎日のようにJSONを扱います。

  • API通信
  • データ保存
  • 外部サービス連携
  • Webアプリ開発

実務では、 「JSONを扱える=外部システムと話せる」 と言っても大げさではありません。


配列とオブジェクトの違い|GAS実務で重要

配列の場合


["鈴木",30]

これだと後から見た人は困ります。

  • 0番目は何?
  • 1番目は年齢?部署?
  • 列追加したら崩れない?

オブジェクトの場合


{
 name:"鈴木",
 age:30
}

メリットは非常に大きいです。

  • 可読性向上
  • 拡張しやすい
  • バグを減らせる
  • 保守性が高い

GAS上級者ほど、 「配列のまま戦わない」 という共通点があります。


GAS スプレッドシートをオブジェクト化する方法

ここが実務の核心です。

スプレッドシートをそのまま処理すると、 列番号依存が発生します。

例えば取得データ。


[
 ["名前","年齢"],
 ["鈴木",30],
 ["田中",25]
]

これをオブジェクトへ変換します。


const data = sheet.getDataRange().getValues();

const headers = data[0];

const objects = data.slice(1).map(row => {

 let obj = {};

 headers.forEach((header,i)=>{

   obj[header] = row[i];

 });

 return obj;

});

結果はこちら。


[
 {名前:"鈴木",年齢:30},
 {名前:"田中",年齢:25}
]

旅行中の荷物整理みたいなものです。 適当に詰め込むより、 カテゴリごとに整理した方が後で圧倒的に楽。

GASも同じです。

Sheet → オブジェクト化 → 処理 → 出力

これが実務標準になります。


GAS オブジェクト操作まとめ

値を取得する


obj.name

obj["name"]

値を追加する


obj.email = "test@example.com";

ループ処理


for(let key in obj){

 Logger.log(key,obj[key]);

}

オブジェクトを自在に扱えるようになると、 コードの自由度が大きく変わります。


GAS実務パターン|検索・フィルタ・加工

検索


const result =
objects.find(obj =>
obj.名前==="鈴木");

フィルタ


const result =
objects.filter(obj =>
obj.年齢 >= 30);

加工


const result = objects.map(obj => {

 return {

  ...obj,

  年齢2倍:
  obj.年齢 * 2

 };

});

スプレッドシートだけで無理やり処理するより、 圧倒的に見通しが良くなります。


GAS reduceとオブジェクトを組み合わせる方法

reduceと組み合わせると、 一気に実務感が増します。

グルーピング


const grouped =
objects.reduce((acc,obj)=>{

 const key = obj.部署;

 if(!acc[key]){

  acc[key]=[];

 }

 acc[key].push(obj);

 return acc;

},{});

部署ごとのJSON構造が完成します。

集計


const sum =
objects.reduce((acc,obj)=>{

 return acc +
 obj.売上;

},0);

売上集計や分析処理で頻出です。


JSON stringifyとparse|API連携必須知識

JSON → 文字列


const json =
JSON.stringify(obj);

文字列 → JSON


const obj =
JSON.parse(json);

API連携では必須。 ここを理解するとGASの世界が広がります。


GAS API連携の基本|UrlFetchApp活用


const response =
UrlFetchApp.fetch(url);

const data =
JSON.parse(
response.getContentText()
);

外部サービスのデータを取得し、 オブジェクトとして扱う。

これが実務GASの基本形です。


GAS初心者がやりがちなミス

キーの大文字小文字違い


obj["name"]

obj["Name"]

存在しないキー参照


obj.xxx

ヘッダーと列ズレ

スプレッドシートの列変更後によく発生します。


GAS上級者になる実務到達ライン

ここまで理解できると、 GASの実務レベルへかなり近づきます。

  • 配列処理
  • オブジェクト化
  • reduce活用
  • JSON操作
  • API連携

特に重要なのは、 「配列のまま処理し続けないこと」 です。

GAS強者ほど、 データを構造化して考えます。

コードを書くというより、 「データ設計をしている」 という感覚です。


まとめ|GASのオブジェクト連携は実務力そのもの

最後に重要ポイントを整理します。

  • オブジェクト = 構造化データ
  • JSONはAPI連携の土台
  • スプレッドシートはオブジェクト化する
  • reduceで集計・グルーピングを作る
  • 設計力が保守性を生む

GAS実務で一段上へ行く人は、 配列を卒業して構造化データへ進みます。

次にGASを書くときは意識してみてください。

「Sheet → オブジェクト → 処理 → 出力」

これが本番レベルへ入る入口です。

このブログを検索

Blog Archive

Welcome



旅するWebライター「Hide」のブログへようこそ!

2年間の世界一周を終え、今は旅の思い出を言葉にしながら、AIやプログラミングという新しい冒険を楽しんでいます。最新技術を味方につけて、もっと自由でクリエイティブな発信を続けていきます!

人気の投稿

QooQ