GAS PR

[GAS]スプレッドシートのセル範囲・最終行取得や並べ替え等の方法 -SpreadSheetクラス-

記事内に商品プロモーションを含む場合があります

Google Apps Script (GAS) でスプレッドシートのセル範囲や最終の行や列の取得、また並べ替え等の方法を説明します。

SpreadSheetクラスのメソッドを利用した手順について説明します。

Google Apps Scriptの基本的な使い方については下記をご覧ください。

GASによるスプレッドシート操作の概要

GASでスプレッドシートを操作するための「SpreadSheetサービス」は、主に下記のクラスで構成されています。

クラス説明
SpreadSheetAppSpreadSheetサービスの親クラス
Spreadsheetスプレッドシートを操作するクラス
Sheetシートを操作するクラス
Rangeセル範囲を操作するクラス

それぞれ下記のような位置付けになります。

「SpreadSheetApp」→「SpreadSheet」→「Sheet」→「Range」という順の階層構造になっています。操作対象に応じて、下の階層にたどってオブジェクトを取得して利用します。

このページでは、上記の中のSpreadSheetクラスの下記のメソッドについて説明します。

メソッド戻り値説明
getRange(a1Notation)Range指定した位置のセル範囲を取得する
getRangeList(a1Notations)RangeList指定した位置の複数のセル範囲を取得する
getDataRange()RangeA1から最終行・最終列までのセル範囲を取得する
getLastRow()Integerデータのある最終行を取得する
getLastColumn()Integerデータのある最終列を取得する
sort(columnPosition)Sheet指定した列を基準に昇順で並べ替える
sort(columnPosition, ascending)Sheet指定した列・指定した順でデータを並べ替える
appendRow(rowContents)Sheet1行のデータを最終行の下に追加する

指定したセル範囲を取得する

指定したセル範囲を取得するメソッドを説明します。

指定した位置のセル範囲を取得する:getRange(a1Notation)

指定したセル範囲を取得する方法です。A1表記またはR1C1表記で指定できます。

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の基本構文を知りたい方は、下記もご覧ください。