こんにちは、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を使って、スプレッドシートの指定した列の全データを取得する

この記事を書いた人

Ryohei

Webエンジニア / ブロガー

福岡のWeb制作会社に務めるWebエンジニアです。エンジニア歴は10年程で、好きな言語はPHPとJavaScriptです。本サイトは私がインプットしたWebに関する知識を整理し、共有することを目的に2015年から運営しています。Webに関するご相談があれば気軽にお問い合わせください。