Google Apps Scriptで複数のセルから値をすべて取得する方法

サンプルコード

 

解説

 

以下の2ステップを踏むことで、表題の内容を実現することができます!

 

  • 値を取得したいと思っている複数のセルのデータを取得する
  • その取得したセルデータから記録されている値のみを取り出す

 

書き方を選ばなければ、上記の内容は1行でも書き切れる内容です!このあとご紹介する内容に従ってコードを叩いてみて実装してみましょう!

 

値を取得したい複数のセルを選択する方法

さて、まずは値を取得したいと思っている複数のセルのデータを取得する必要があります。

この作業をしなければ「そもそもどのセルから値を取得したらいいの?」ってことになります…笑

 

複数のセル情報を取得する方法は主に2パターンありまして、

 

  • データ値を持つセル範囲をすべて取得する方法(サンプルコードはこれ!)
  • 任意の複数のセル範囲を取得する方法

 

があります!それぞれについて最もベターな方法をご紹介していきます!

 

データ値のあるセル範囲をすべて取得する方法

 

データ値のあるセル範囲をすべて取得するにはgetDataRangeメソッドを使います!

getDataRangeメソッドを書くだけでデータ値のあるセル範囲を一瞬で、何らかの設定をすることなく取得することができます!

 

例えば、下図のシートに対してgetDataRangeメソッドを利用すると…

 

 

このようなセル範囲のデータを取得することができます!空欄をスキップされず、データ値のあるセルを基準に囲い込まれる点がポイントです!

 

もっと詳細を知りたい方は下記のリンクにてまとめてありますのでご確認ください!

 

とにかくシート上の値を取得したい…と思ったときには迷わずgetDataRangeメソッドを利用しましょう!

 

任意の複数のセル範囲を取得する方法

 

任意のセル範囲を選択して取得したい場合にはgetRangeメソッドを使いましょう!

getRangeメソッドの引数にセル範囲についての情報を記述しておくことで、その範囲のセルデータを取得することができます。

 

セル範囲の設定ですが、先ほどお見せしたサンプルシートからgetDataRangeメソッドと同じ出力結果を得たい場合には…

 

getRange (1, 1, 3, 5)

 

と記入します。行・列ともに1のセルA1を基準として行方向に3つ、列方向に5つのセルデータを参照するという意味です。

他にもいろいろ値を入力してみてどのような結果が出るのか試してみてください!

 

getRangeについてもっと知りたい方は下記のリンクを参考にしてください!

 ちょっと気軽にエンジニア
ちょっと気軽にエンジニア
https://www.hop-step-engineering.com/googleappsscript/getrange/
HOP! STEP! ENGINEERING!!

 

すべての値は必要ないからこちらで範囲を指定したい…という場合にはgetRangeメソッドを利用してくださいね!

 

取得したセルデータから値のみを取り出す方法

では、先ほど取得したセル範囲のデータからすべての値を取り出します!

ここでは、getValuesメソッドを利用することで実現できます。getValuesメソッドは命令の対象となるRangeオブジェクト(つまり、セルデータですね!)から記録されているすべての値を取り出してくれるものです!

 

 

getValuesを利用して得られる値は2次元配列データとして返されます!

先ほどgetDataRangeメソッドで取得したセルデータをgetValuesで取得すると…

 

[[1, 2, 3, 4, 5] [ , , 6, 7, 8][9, 10, , , ]]

 

という結果が返ってきます。これで、今回のやりたかった複数セルから値を取得するという目的は達成できましたね!

 

もっと、getValuesについて知りたい方は下記のリンクを参照してください。

おわりに

複数のセルから値をすべて取得する方法についてご紹介しました!

getRangeメソッドでのセル範囲の選択やgetValuesメソッドで取得した2次元配列の扱いについては少し慣れが必要になるかもしれませんので、繰り返し触ってみて勉強を進めてみてください!

 

けっこう頻繁に使う記述パターンなので、覚えておくとGASプログラミングの幅が大きく広がること間違いないでしょう!

yoshi

JavaScript、Google Apps Scriptがメイン。Pythonもちょっとだけ。Google Apps Script開発、Pythonスクレイピングなどをする機会が多いです。ご依頼なども承っております。 記事内容についてのご意見・ご指摘などいただけますと幸いです。

シェアする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントする