Google Apps Scriptでスプレッドシートのデータの1行分を表すクラスを作る方法


record

photo credit: Jonas Hellebuyck Vinyl memories via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

「初心者でもわかるGoogle Apps Scriptのクラスの作り方」をテーマにシリーズをお送りしています。

前回の記事はこちら。

Google Apps Scriptでクラスに最も簡単なメソッドを追加する方法
「初心者でもわかるGoogle Apps Scriptのクラスを作ろう!」のシリーズをお送りしています。今回はGASでクラスに最も簡単なメソッドを追加する方法です。プロトタイプについても解説していますよ。

GASのクラスにメソッドを追加する方法についてお伝えしました。

今回は、当初目標にしていたスプレッドシートのデータのクラス化を進めていきたいと思いますよ。

Google Apps Scriptでスプレッドシートのデータの1行分を表すクラスを作る方法です。

では、行ってみましょう!

前回のおさらい

まずは前回のおさらいからです。

作成したスクリプトはこちらでした。

nameプロパティと、greetメソッドを持つクラスPersonを作成しましたね。

スプレッドシートの一行分を表すクラスを作る

さて、以下のようなスプレッドシートのデータがあります。

スプレッドシートのテーブル

前述のクラスPersonを拡張して、これらのデータの一行分を表すクラスを作成していきたいというのが今回のお題となります。

見出しごとにプロパティを作る

スプレッドシートの表の見出しとして、id、name、gender、birthdayとありますので、これをそのままプロパティ名として流用すれば良さそうですよね。

例えば、こんな感じでしょうか。

すると、インスタンスの生成は…

うん、めんどい。

バラバラではなくて、まとめてコンストラクタにデータを渡したいですよね。

コンストラクタに一行分の配列を渡す

GASの場合は、スプレッドシートのデータをいい感じに二次元配列に取得することができます。

【初心者向けGAS】スプレッドシートのセル範囲の値を二次元配列として取得して取り扱う方法
Google Apps Script初心者向けのお題として、名言Botの作り方をお伝えしています。今回は、スプレッドシートのセル範囲の値を二次元配列としてgetValuesで取得して取り扱う方法です。

この二次元配列から、要素である一次元配列を取り出すと、それが行のデータの集合となっているわけです。

なので、コンストラクタを以下のように、行のデータの集合である配列recordを受け取るようにしてみましょう。

すると、インスタンスの生成は

などと書けます。

スッキリしてて良い感じです。

たまたま、スプレッドシートのデータの列が増えても、コンストラクタさえ変更すれば、インスタンスの生成はそのままでいきそうですしね。

スプレッドシートの一行分のデータをクラス化するスクリプト

では、上記をもとにまとめと動作確認をするスクリプトです。

こちらです。

Personのインスタンスが持つデータを確認するためのlogメソッドも作ってみました。

実行すると、BobさんとTomさんの分について、以下のようにメッセージダイアログが表示されつつ

クラスのメソッドによるメッセージダイアログ

以下のように、インスタンスが持つデータのログを確認することができます。

インスタンスが持つデータのログを確認する

まとめ

以上、Google Apps Scriptでスプレッドシートのデータの1行分を表すクラスを作る方法をお伝えしました。

GASではスプレッドシートのデータが二次元配列で取得できますので、その要素である一次元配列としてコンストラクタに渡してあげる形にすれば良いですね。

次回は、プロパティをプライベートにする方法についてお伝えしていきます。

Google Apps Scriptのクラスでプライベートプロパティを作成する方法
「初心者でもわかるGoogle Apps Scriptでクラスを作ろう!」をシリーズでお送りしております。今回は、Google Apps Scriptのクラスでプライベートプロパティを作成する方法です。

どうぞお楽しみに!

連載目次:初心者向けGoogle Apps Scriptでクラスを作ろう

使いどころやそのメリットが分かりづらいGASの「クラス」。本シリーズでは、初心者でもわかるように「これでもか!」とじっくり着実にクラスとそのメリットについて解説をしていきます。
  1. 【初心者向け】Google Apps Scriptでクラスを理解するためのオブジェクトの基礎知識
  2. 初心者でもできるGoogle Apps Scriptで最も簡単なクラスを作る方法
  3. Google Apps Scriptでクラスに最も簡単なプロパティを追加する方法
  4. Google Apps Scriptでクラスに最も簡単なメソッドを追加する方法
  5. Google Apps Scriptでスプレッドシートのデータの1行分を表すクラスを作る方法
  6. Google Apps Scriptのクラスでプライベートプロパティを作成する方法
  7. Google Apps Scriptでプライベートプロパティを取得するメソッドを作成する方法
  8. GASでdefinePropertiesメソッドを使ってクラスにプロパティを定義する方法
  9. Google Apps Scriptで即時関数にクラスを定義する理由とその方法
  10. Google Apps Scriptでスプレッドシートの表をインスタンス配列化する方法
  11. Google Apps Scriptでデータの集合を表すクラスを作成する方法
  12. Google Apps Scriptで自作オブジェクトについてプロパティを追加・削除するメソッドの作り方
  13. Google Apps Scriptでオブジェクトに直接追加しているプロパティだけループする方法
  14. GASでselfを使って関数の中からインスタンスを表すthisを使えるようにする方法
  15. GASでオブジェクトのデータをスプレッドシートに反映させるメソッドの作り方

  投稿者プロフィール

タカハシノリアキ株式会社プランノーツ 代表取締役
株式会社プランノーツ代表、コミュニティ「ノンプロ研」主宰。1976年こどもの日生まれ。東京板橋区在住。「ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ
★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ
★フォロー頂ければ嬉しいです。

コメント

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