Google Apps Script

【GAS】スプレッドシートのデータからオブジェクトを作る(キーに変数を使用)

 

もり
もり
こんにちは!ITライターのもり(@moripro3)です!

 

スプレッドシートのデータを元に、オブジェクトを作成する方法を紹介します!

スプレッドシートのデータから「オブジェクト」を作成します。

  • 1行目:キー
  • 2~n行目:値
GASでスプレッドシートのデータからオブジェクトを作成する

【予備知識1】オブジェクト(連想配列)とは

まず、「配列」と「オブジェクト(連想配列)」の違いをみておきましょう。

オブジェクト(連想配列)とは、「キー」と「値」をペアにしたデータ構造です。

 

※正確には「配列」も「連想配列」ともに「オブジェクトの一種」ですが、JavaScriptでは「連想配列」を「オブジェクト」と表現するのが一般的なので、この記事では「オブジェクト」という単語を使用します。

【予備知識2】オブジェクトのキーに変数を使用する方法

GASでは、オブジェクトの「キー」に変数を使用することが可能です。

(参考サイト)[GAS]キーを変数から取得してオブジェクトを作る

サンプルコードを見てみましょう。

【予備知識3】配列とオブジェクトをネスト(入れ子)する方法

角括弧(かくかっこ)は「配列」です。

var arr = []

 

波括弧(なみかっこ)は「オブジェクト」です。

var obj = {}

 

「配列」の中に「オブジェクト」を列挙する記述方法です。

 

もり
もり
さぁ、予備知識長くなっちゃったけど、ここまで理解できたらコードを書いてみよう!

スプレッドシートのデータからオブジェクトを作成

まず、全体のコードがこちらです。

 

ログ出力結果です。

 

※GASではオブジェクトの並び順は保証されていません。

  • スプレッドシート id, name, age の並び順
  • ログ出力結果 name, id, age の並び順

 

もり
もり
それではコードを詳しく解説していくよ!

スプレッドシートのデータを取得(二次元配列)

アクティブなシートのデータ範囲を、変数valuesに格納します。

 

二次元配列valuesの番地[x][x]は以下のとおりです。配列の長さ(length)は4です。

GAS二次元配列

オブジェクトの「キー」にする変数を用意

スプレッドシート1行目の各項目を、オブジェクトの「キー」として使うために、変数に格納します。
(※この時点ではまだオブジェクトは存在しません。変数に値を代入しているだけです)

 

GASスプレッドシートの値をキーにする

ループ1周目(i = 1)

空のオブジェクトを作成してから、オブジェクトの各「キー」に「値」を設定します。

 

i = 1 なので、スプレッドシートの2行目の値です。

 

ここでオブジェクト(変数obj)の中身を確認してみます。各「キー」に、スプレッドシート2行目の「値」が設定されています。

 

つづいて、「配列」に「オブジェクト(変数obj)」を追加します。配列の末尾に要素を追加するpushメソッドを使用します。

 

この時点の配列(変数arr)の状態です。

以上がfor文1周目の処理です。同じ処理を繰り返します。

ループ2周目(i = 2)

オブジェクトの各「キー」に「値」を設定します。i = 2 なので、スプレッドシートの3行目の値です。

 

pushメソッドで「配列」の末尾に「オブジェクト」追加します。

ループ3周目(i = 3)

オブジェクトの各「キー」に「値」を設定します。i = 3 なので、スプレッドシートの4行目の値です。

 

pushメソッドで配列の末尾に追加します。

結果出力(ログ)

処理が終了しました。結果を見てみましょう。

まとめ

スプレッドシートのデータから、オブジェクトを作成する方法を紹介しました!

  • 「配列」と「オブジェクト」の違い
  • 「配列」と「オブジェクト」をネストする方法
  • 「オブジェクト」のキーに変数を使用する方法

 

GASでスプレッドシートのデータからオブジェクトを作成する

 

この方法の嬉しいポイントは2つ!

  • オブジェクトの「キー」に変数を使用するので、キー名称を変更する場合、スプレッドシートのデータを書き換えるだけでOK!(スクリプトの修正不要)
  • ループ処理なので、スプレッドシートの行数が増減してもOK!
もり
もり
みんなも使ってみてね~
非エンジニアもプログラミングを学習する時代!

「プログラミング」ってエンジニアとかプログラマーの人がするものでしょ?文系の私には関係ないや~って思っていませんか?

いまは、非エンジニアもプログラミングを学習する時代です!

「プログラミングの必修化」をご存知ですか?

  • 2020年~ 小学校で開始
  • 2021年~ 中学校で開始
  • 2022年~ 高等学校で開始
  • 2024年~ 高校受験科目に新設

学校での必修化に向けて、すでに子ども向けプログラミングスクールが多数開校されています。

あと数年もすれば、あたりまえにプログラミングができる新入社員がやってくる時代になります。

プログラミングってなに?どんなもの?まずは無料体験から試してみませんか?

 

1週間の無料体験あり!
オンラインスクール実績No.1!