Google Apps Script (GAS) でスプレッドシートのセル範囲や最終の行や列の取得、また並べ替え等の方法を説明します。
SpreadSheetクラスのメソッドを利用した手順について説明します。
Google Apps Scriptの基本的な使い方については下記をご覧ください。
GASによるスプレッドシート操作の概要
GASでスプレッドシートを操作するための「SpreadSheetサービス」は、主に下記のクラスで構成されています。
クラス | 説明 |
---|---|
SpreadSheetApp | SpreadSheetサービスの親クラス |
Spreadsheet | スプレッドシートを操作するクラス |
Sheet | シートを操作するクラス |
Range | セル範囲を操作するクラス |
それぞれ下記のような位置付けになります。

「SpreadSheetApp」→「SpreadSheet」→「Sheet」→「Range」という順の階層構造になっています。操作対象に応じて、下の階層にたどってオブジェクトを取得して利用します。
このページでは、上記の中のSpreadSheetクラスの下記のメソッドについて説明します。
メソッド | 戻り値 | 説明 |
---|---|---|
getRange(a1Notation) | Range | 指定した位置のセル範囲を取得する |
getRangeList(a1Notations) | RangeList | 指定した位置の複数のセル範囲を取得する |
getDataRange() | Range | A1から最終行・最終列までのセル範囲を取得する |
getLastRow() | Integer | データのある最終行を取得する |
getLastColumn() | Integer | データのある最終列を取得する |
sort(columnPosition) | Sheet | 指定した列を基準に昇順で並べ替える |
sort(columnPosition, ascending) | Sheet | 指定した列・指定した順でデータを並べ替える |
appendRow(rowContents) | Sheet | 1行のデータを最終行の下に追加する |
指定したセル範囲を取得する
指定したセル範囲を取得するメソッドを説明します。
指定した位置のセル範囲を取得する:getRange(a1Notation)
指定したセル範囲を取得する方法です。A1表記またはR1C1表記で指定できます。
A1表記は、列の英字と行の数字の組み合わせでセルを参照する方法で、例えば”A1″、”B2″、”C3″のように表記します。
R1C1表記は、セルの行番号と列番号を使用してセルを参照する方法で、例えば”R1C1″、”R2C2″、”R3C3″のように表記します。
下記のように実行します。A1表記の場合の例です。
取得したセル範囲をgetValuesメソッドで表示しています。
下記のファイルに対して実行すると、

下記の結果になります。
シートを指定しない場合は、アクティブなシートのデータを取得します。
シートを指定したい場合は、SheetクラスのgetRangeメソッドを利用するか、下記のようにシート名でシートを指定できます。
指定した位置の複数のセル範囲を取得する:getRangeList(a1Notations)
指定した複数のセル範囲を取得する方法です。A1表記またはR1C1表記で指定できます。
下記のように実行します。A1表記の場合の例です。
取得したセル範囲リストからgetRangesメソッドでセル範囲を取得し、getValuesメソッドで内容を表示しています。
下記のファイルに対して実行すると、

下記の結果になります。
シートを指定しない場合は、アクティブなシートのデータを取得します。
シートを指定したい場合は、SheetクラスのgetRangeListメソッドを利用するか、下記のようにシート名でシートを指定できます。
A1から最終行・最終列までのセル範囲を取得する:getDataRange()
A1セルからデータのある最終行・最終列までのセル範囲を取得する方法です。
下記のように実行します。
取得したセル範囲をgetValuesメソッドで表示しています。
下記のファイルに対して実行すると、

下記の結果になります。
A1セルに値がなくてもA1からの範囲になるため、下記の範囲でセル範囲を取得します。

アクティブなシートのデータを取得します。
シートを指定したい場合は、SheetクラスのgetDataRangeメソッドを利用します。
最終行・最終列を取得する
最終行や最終列を取得するメソッドを説明します。
データのある最終行を取得する:getLastRow()
データのある最終行の行番号を取得する方法です。
下記のように実行します。
下記のファイルに対して実行すると、

下記の結果になります。データの存在する一番下の行の行番号が表示されます。
アクティブなシートのデータを取得します。
シートを指定したい場合は、SheetクラスのgetLastRowメソッドを利用します。
データのある最終列を取得する:getLastColumn()
データのある最終列を番号で取得する方法です。
下記のように実行します。
下記のファイルに対して実行すると、

下記の結果になります。データの存在する一番右の列を番号にしたものが表示されます。
アクティブなシートのデータを取得します。
シートを指定したい場合は、SheetクラスのgetLastColumnメソッドを利用します。
シートのデータを並べ替える
シートのデータを並べ替えるメソッドを説明します。
指定した列を基準に昇順で並べ替える:sort(columnPosition)
シートのデータを指定した列の昇順で並べ替えする方法です。
下記のように実行します。
下記のファイルに対して実行すると、

下記の結果になります。

上記のように、特定のセル範囲内で並べ替えるのではなく、シート全体で並べ替えされます。
特定のセル範囲内で並べ替えたい場合は、Rangeクラスのsortメソッドを利用するとよいでしょう。
アクティブなシートのデータを取得します。
シートを指定したい場合は、Sheetクラスのsortメソッドを利用します。
指定した列・指定した順でデータを並べ替える:sort(columnPosition, ascending)
シートのデータを指定した列・指定した順で並べ替えする方法です。
下記のように実行します。第2引数をtrueにすると昇順、falseにすると降順になります。
下記のファイルに対して実行すると、

下記の結果になります。C列で降順に並べ替えられます。

上記のように、特定のセル範囲内で並べ替えるのではなく、シート全体で並べ替えされます。
特定のセル範囲内で並べ替えたい場合は、Rangeクラスのsortメソッドを利用するとよいでしょう。
アクティブなシートのデータを取得します。
シートを指定したい場合は、Sheetクラスのsortメソッドを利用します。
1行のデータを最終行の下に追加する
1行のデータを最終行の下に追加するメソッドを説明します。
1行のデータを最終行の下に追加する:appendRow(rowContents)
データのある最終行の下にデータを1行追加する方法です。
下記のように実行します。
下記のファイルに対して実行すると、

下記の結果になります。データの存在する最終行の下に追加されます。

アクティブなシートのデータを取得します。
シートを指定したい場合は、SheetクラスのappendRowメソッドを利用します。
まとめ
Google Apps Script (GAS) でスプレッドシートのセル範囲や最終の行や列の取得、また並べ替え等の方法を説明しました。
GASは無料で利用できてとても便利なツールです。
Googleスプレッドシート等のGoogleアプリケーションを利用されている方は、GASを習得することで作業を大きく効率化できます。
GASの基本構文を知りたい方は、下記もご覧ください。