【getSheetValues】指定したセル範囲に記録されているデータ値をすべて取得する

GoogleAppsScript

【getSheetValues】メソッドは

引数で指定したセル範囲内に記録されているデータの値を配列で取得することができるメソッド

です。

 

公式リファレンスの該当ページはこちら

 

クラス

【Spreadsheetクラス】【Sheetクラス】

getActiveSpreadsheetメソッドなどで取得できるSpreadsheetクラス、getActiveSheetメソッド、getSheetByNameメソッドなどで取得できるSheetクラスのオブジェクトから利用することができます。

 

参考情報としてお話しておくと、類似のメソッドとしてRangeクラスから利用できるgetValuesというメソッドもあり、こちらもgetSheetValuesメソッドと同じように選択されたセル範囲に記録されているデータ値を取得することができます。

getSheetValuesメソッドではデータ値を取得したいセル範囲を引数に設定するのに対して、getValuesメソッドはあらかじめデータ値を取得したいセル範囲をRangeクラスのオブジェクトとして取得しておき、それに対して値取得の命令をするメソッドであるという違いがあります。

getSheetValuesメソッドとgetValuesメソッドとのどちらを使うべきかという点ですが、データ値が記録されているすべてのセル範囲をRangeオブジェクトとして取得することができるgetDataRangeメソッドが大変便利であることから、getValuesメソッドの活躍する場面が多いのではないかと思います。

 

getValuesメソッドについての解説はこちら

 

記述方法

 

SpreadSheetクラス、もしくはSheetクラスのオブジェクトに対して書き綴ります。

 

引数にはデータ値を取得したいセルの範囲を指定します。セル範囲の設定値ですが

getSheetValues(セルの行開始位置, セルの列開始位置, セルの行数, セルの列数)

の4つがあり、これらに数値を入れていく必要があります。

例として、こちらのサンプルシートに記載されているセル値をすべて取得したい場合のセル範囲の指定方法をご紹介します。

 

まず、セル範囲指定の起点となるセルの行・列の番号をそれぞれ記載します。

セル範囲として指定したい箇所のうち、一番左上にあたるセルがセル範囲指定の起点セルとなります。

サンプルシートではセルA1からデータ値が記録され始めているため、セルの行開始位置に”1″を、セルの列開始位置にも”1″を入力します。

 

ここまで入力すると

getSheetValues(1, 1, セルの行数, セルの列数)

となっているかと思います。

 

次に、起点としたセルからどれだけの範囲のセルを取得対象にするかを設定します。

今回のサンプルシートの場合ですと、一番最後の行では3行目までデータ値が記録されており、列ではE列…つまり、5行目までデータ値が記録されています。

 

つまり、起点とするセルA3から行では3行分、列では5列分のデータを取得したいという情報を引数に記録してあげます。それらを記入してあげると

getSheetValues(1, 1, 3, 5)

というふうになります。

 

この引数設定でgetSheetValuesメソッドを利用することで、戻り値の章でご紹介した戻り値を取得することができます。

 

先ほどのセル範囲設定のご紹介でお気づきとは思いますが、セルの範囲設定は以下のような指定になります。

 

getSheetValuesでは以下のようなセル範囲の設定はできないことにご注意ください。

戻り値

【Object [ ][ ]】

getSheetValuesで取得したデータ値は2次元配列となります!

例えば、1〜10のデータ値をすべて取得できるように以下のようにコードを書いてみましょう。

 

getSheetValuesメソッドを使った場合、戻り値として取得することができる内容は

 

となります。(メソッドの記述方法についての詳細は後述)

空欄になっているセルも含めてセル範囲を取得された場合には、空欄の部分も配列に含めた戻り値となります。

戻り値として取得した2次元配列からセルの値を出力させたい場合、例えば、セルC3の値を出力する場合はarray[1][2]と表記する必要があります。

行・列番号と2次元配列のインデックス番号との違いに注意してくださいね。

 

使用例

※後日追記予定

関連メソッド

以下のメソッドも確認しておくと、よりgetSheetValuesを活用することが可能です。(後日追加予定)

yoshi

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

シェアする

コメントを残す

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

コメントする