【GAS】スプレッドシートの指定した列の全データを取得する

こんにちは、ryohei(@ityryohei)です!

本記事では、Google Apps Scriptを使って、スプレッドシートの指定した列の全データを取得する方法をご紹介しています。

スプレッドシートの指定した列の全データを取得したいな。良い方法ないかな?

上記の疑問にお答えします。

では、解説していきます。

指定した列の全データの取得にはgetRange()を使用する

列データの使用にはSheet ClassgetRange()を使用します。getRange()は指定された座標の左上のセルを含む範囲を返すメソッドです。

getRange()は指定した引数に応じて取得する内容が変化します。ここでは範囲左上のセルの座標と行数を指定することができる下記のパターンを使用します。

getRange(row, column, numRows);

引数には下記の値を指定します。

引数説明
row範囲の開始行を整数で指定する。最小値は1。
column範囲の開始列を整数で指定する。最小値は1。
numRows範囲の最終行を整数で指定する。

それぞれ直感的に指定することができますね。

参考:getRange(row, column, numRows);

getRange()で指定した列の全データを取得する

getRange()を使って、下記スプレッドシートから指定した列の全データを取得します。(ジェネレータで作成したテストデータです。)

ここでは下記赤枠内のセル範囲を取得してみます。

上記赤枠のセルを取得する場合、getRange()に指定する値は下記のようになります。

  • row:2
  • column:2
  • numRows:getLastRow()-1

rowcolは値の通りです。numRowsにはシートの最終行から1を引いた値を指定しています。シートの最終行はgetLastRow()で取得することができるため、カラム名のセル分をマイナスしています。

実際にスクリプトを組んでみると下記のようになります。

Google Apps Script

function getColData() {
    //スプレッドシートを取得する
    const spreadsheet = SpreadsheetApp.openById('SPREADSHEET_ID');
    //シートを取得する
    const sheet = spreadsheet.getSheetByName("シート1");
    //シート最終行の値を取得する
    const lastRow = sheet.getLastRow();
    //指定したセル範囲を取得する
    const range = sheet.getRange(2, 2, lastRow-1);
    //セル範囲の値を取得する
    const values = range.getValues();


    //ログ
    console.log(values);
}

実行すると下記のログが出力されます。

10:00:00 情報 [
  [ 'にしむら すみこ' ],
  [ 'おがさわら ひろたか' ],
  [ 'かわさき よしのぶ' ],
  [ 'いその けいぞう' ],
  [ 'なかじま けんいちろう' ],
  [ 'たきざわ のりまさ' ],
  [ 'いしい ひろゆき' ],
  [ 'いいづか かずや' ],
  [ 'たなか たかし' ]
]

データは配列のため、forEach等で処理することができます。これでスプレッドシートで指定した列の全データを取得することができました。

参考:getLastRow();

最後に

Google Apps Scriptは各機能がドキュメントにきれいにまとめられているため、リファレンスを参照すれば理解が深まります。Web上に公開されている情報で一連の処理の流れを確認する、ドキュメントで各機能の詳細を確認する、というような使い分けをすると良いかもしれませんね。

以上、Google Apps Scriptを使って、スプレッドシートの指定した列の全データを取得する

おすすめの書籍

Adobe Creative Cloudを通常価格で購入していませんか?

Adobe Creative Cloud(Adobe CC)はAdobe社が提供するクリエイター向けのサービスです。WEB制作の幅を広げる「Photoshop・Illustrator・XD」Youtuberや動画クリエイターの編集作業に欠かせない「Premiere Pro・After Effects」など全20以上のアプリが提供されており、幅広いプランが用意されています。

コンプリートプランはAdobe CCの全20以上のアプリが使用できるプランです。多くのアプリが使用できるため定価で購入すると年間7万円以上するプランですが、デジタルハリウッドのAdobeマスター講座では「基礎動画教材+Adobe CC コンプリートプラン(12ヵ月)」がセットになって39,980円(税込)で利用できます。定価より安価にAdobe Creative Cloudのライセンスを購入でき、以降のライセンス更新も可能。動画教材で基礎スキルを習得できるので、入門する方にも便利な講座です。詳しくは下記のリンクからチェックしてみてくださいね。