Google Apps Script (GAS) でセル範囲・最終行の取得や並び替え、データの追加・削除などの方法を説明します。

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

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

Contents
  1. GASによるスプレッドシート操作の概要
  2. このシートの指定したセル範囲を取得する
  3. このシートの最終行・最終列を取得する
  4. このシートの現在の行数・列数を取得する
  5. このシートの指定した行・列を移動する
  6. このシートのデータを並べ替える
  7. 1行のデータをこのシートの最終行の下に追加する
  8. このシートのデータや書式などを削除する
  9. まとめ

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

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

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

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

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

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

メソッド戻り値説明
getRange(row, column)Range行・列番号で指定した位置のセル範囲を取得する
getRange(row, column, numRows)Range行・列番号で指定した位置から指定した数の行を取得する
getRange(row, column, numRows, numColumns)Range行・列番号で指定した位置から指定した数の行と列を取得する
getRange(a1Notation)RangeA1表記またはR1C1表記で指定した位置のセル範囲を取得する
getRangeList(a1Notations)RangeListA1表記またはR1C1表記で指定した位置の複数のセル範囲を取得する
getDataRange()RangeA1から最終行・最終列までのセル範囲を取得する
getLastRow()Integerこのシートのデータのある最終行を取得する
getLastColumn()Integerこのシートのデータのある最終列を取得する
getMaxRows()Integerこのシートの現在の行数を取得する
getMaxColumns()Integerこのシートの現在の列数を取得する
moveRows(rowSpec, destinationIndex)voidこのシートの指定した行を指定した数だけ移動する
moveColumns(columnSpec, destinationIndex)voidこのシートの指定した列を指定した数だけ移動する
sort(columnPosition)Sheetこのシートの指定した列を基準に昇順で並べ替える
sort(columnPosition, ascending)Sheetこのシートの指定した列・指定した順でデータを並べ替える
appendRow(rowContents)Sheet1行のデータをこのシートの最終行の下に追加する
clear()Sheetこのシートのデータと書式を削除する
clearContents()Sheetこのシートのデータのみを削除する
clearFormats()Sheetこのシートの書式のみを削除する
clear(options)Sheetオプション指定でこのシートのデータや書式を削除する
clearNotes()Sheetこのシートのメモを削除する
clearConditionalFormatRules()voidこのシートの条件付き書式ルールをすべて削除する

このシートの指定したセル範囲を取得する

このシートの、指定したセル範囲を取得するメソッドを説明します。

行・列番号で指定した位置のセル範囲を取得する:getRange(row, column)

このシートの指定したセルを取得する方法です。

1からはじまる番号で行と列を指定します。

下記のように実行します。
getA1Notation()は、セルの位置を表示するメソッドです。

下記の結果になります。2行目の2列目になるため、B2セルが指定されます。

行・列番号で指定した位置から指定した数の行を取得する:getRange(row, column, numRows)

このシートの指定したセルから指定した数の行を取得する方法です。

1からはじまる番号で行と列を指定します。

下記のように実行します。
getA1Notation()は、セルの位置を表示するメソッドです。

下記の結果になります。2行目の2列目であるB2セルから、3行分が指定されます。

行・列番号で指定した位置から指定した数の行と列を取得する:getRange(row, column, numRows, numColumns)

このシートの指定したセルから指定した数の行と列を取得する方法です。

1からはじまる番号で行と列を指定します。

下記のように実行します。
getA1Notation()は、セルの位置を表示するメソッドです。

下記の結果になります。2行目の2列目であるB2セルから、3行分と5列分が指定されます。

A1表記またはR1C1表記で指定した位置のセル範囲を取得する:getRange(a1Notation)

このシートの指定したセル範囲を取得する方法です。

A1表記またはR1C1表記で指定できます。

A1表記・R1C1表記について

A1表記は、列の英字と行の数字の組み合わせでセルを参照する方法で、例えば”A1″、”B2″、”C3″のように表記します。

R1C1表記は、セルの行番号と列番号を使用してセルを参照する方法で、例えば”R1C1″、”R2C2″、”R3C3″のように表記します。

下記のように実行します。
getA1Notation()は、セルの位置を表示するメソッドです。

下記の結果になります。

A1表記またはR1C1表記で指定した位置の複数のセル範囲を取得する:getRangeList(a1Notations)

このシートの指定した複数のセル範囲を取得する方法です。

A1表記またはR1C1表記で指定できます。

下記のように実行します。
取得したセル範囲リストからgetRangesメソッドでセル範囲を取得し、getA1Notationメソッドで内容を表示しています。
getA1Notation()は、セルの位置を表示するメソッドです。

下記の結果になります。

A1から最終行・最終列までのセル範囲を取得する:getDataRange()

このシートのA1セルからデータのある最終行・最終列までのセル範囲を取得する方法です。

下記のように実行します。
取得したセル範囲をgetValuesメソッドで表示しています。

下記のファイルに対して実行すると、

下記の結果になります。

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

このシートの最終行・最終列を取得する

このシートの、最終行・最終列を取得するメソッドを説明します。

このシートのデータのある最終行を取得する:getLastRow()

このシートのデータのある最終行の行番号を取得する方法です。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。データの存在する一番下の行の行番号が表示されます。

このシートのデータのある最終列を取得する:getLastColumn()

このシートのデータのある最終列を番号で取得する方法です。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。データの存在する一番右の列を番号にしたものが表示されます。

このシートの現在の行数・列数を取得する

このシートの、現在の行数・列数を取得するメソッドを説明します。

このシートの現在の行数を取得する:getMaxRows()

このシートの現在の行数を取得する方法です。

下記のように実行します。

下記のように1000行が上限になっている状態のシートで実行すると、

下記の結果になります。

このシートの現在の列数を取得する:getMaxColumns()

このシートの現在の列数を取得する方法です。

下記のように実行します。

下記のようにZ列が上限になっている状態のシートで実行すると、

下記の結果になります。

このシートの指定した行・列を移動する

このシートの、指定した行・列を移動するメソッドを説明します。

このシートの指定した行を指定した数だけ移動する:moveRows(rowSpec, destinationIndex)

このシートの、指定した行を移動する方法です。

rowSpecには、移動したい行を含むセル範囲を指定します。
例えば、C5:F9と指定した場合は、5行目〜9行目が移動対象になります。

destinationIndexには、移動先の行番号を指定します。13を指定すると13行目の上に挿入されます。

下記のように実行します。

下記のシートに対して実行するとします。

B2:C3を指定しているため移動対象の行は、下記の2、3行目になります。
(BやCは特に意味はありません。)

移動先は、5を指定しているため、5行目の上(下記の位置)に挿入されます。

実行後は下記の結果になります。指定した行が、指定した移動先に移動されます。

このシートの指定した列を指定した数だけ移動する:moveColumns(columnSpec, destinationIndex)

このシートの、指定した列を移動する方法です。

rowSpecには、移動したい列を含むセル範囲を指定します。
例えば、C5:F9と指定した場合は、C列目〜F列目が移動対象になります。

destinationIndexには、移動先の行番号を指定します。8を指定すると8列目(H列)の左に挿入されます。

下記のように実行します。

下記のシートに対して実行するとします。

B2:C3を指定しているため移動対象の行は、下記のB、C列目になります。
(2や3は特に意味はありません。)

移動先は、5を指定しているため、5列目(E列)の左(下記の位置)に挿入されます。

実行後は下記の結果になります。指定した列が、指定した移動先に移動されます。

このシートのデータを並べ替える

このシートのデータを並べ替えるメソッドを説明します。

このシートの指定した列を基準に昇順で並べ替える:sort(columnPosition)

このシートのデータを指定した列の昇順で並べ替えする方法です。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。

上記のように、特定のセル範囲内で並べ替えるのではなく、シート全体で並べ替えされます。
特定のセル範囲内で並べ替えたい場合は、Rangeクラスのsortメソッドを利用するとよいでしょう。

このシートの指定した列・指定した順でデータを並べ替える:sort(columnPosition, ascending)

このシートのデータを指定した列・指定した順で並べ替えする方法です。

下記のように実行します。第2引数をtrueにすると昇順、falseにすると降順になります。

下記のファイルに対して実行すると、

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

上記のように、特定のセル範囲内で並べ替えるのではなく、シート全体で並べ替えされます。
特定のセル範囲内で並べ替えたい場合は、Rangeクラスのsortメソッドを利用するとよいでしょう。

1行のデータをこのシートの最終行の下に追加する

1行のデータをこのシートの最終行の下に追加するメソッドを説明します。

1行のデータをこのシートの最終行の下に追加する:appendRow(rowContents)

このシートのデータのある最終行の下に、データを1行追加する方法です。

下記のように実行します。

下記のファイルに対して実行すると、

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

このシートのデータや書式などを削除する

このシートのデータや書式などを削除するメソッドを説明します。

このシートのデータと書式を削除する:clear()

このシートのデータと書式を削除する方法です。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。データも書式も削除されます。

このシートのデータのみを削除する:clearContents()

このシートのデータのみを削除する方法です。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。データは削除されますが、書式は削除されません。

このシートの書式のみを削除する:clearFormats()

このシートの書式のみを削除する方法です。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。書式は削除されますが、データは削除されません。

オプション指定でこのシートのデータや書式を削除する:clear(options)

データを削除するか、書式を削除するかを指定して、このシートのデータや書式を削除する方法です。

書式はformatOnly、データはcontentsOnlyというパラメータに対して、true/falseで指定します。

下記のように実行します。
書式を削除し、データを削除しない場合の例です。

下記のファイルに対して実行すると、

下記の結果になります。書式は削除されますが、データは削除されません。

このシートのメモを削除する:clearNotes()

このシートのメモを削除する方法です。

下記のように実行します。

下記のファイルに対して実行します。3つのメモがあります。

下記の結果になります。メモが削除されます。

このシートの条件付き書式ルールをすべて削除する:clearConditionalFormatRules()

このシートの条件付き書式ルールを削除する方法です。

下記のように実行します。

下記のファイルに対して実行します。
「”C”という文字を含むセルを黄色セルにする」という条件付き書式ルールが設定されています。

実行すると、下記の結果になります。条件付き書式ルールが削除されます。

まとめ

Google Apps Script (GAS) でセル範囲・最終行の取得や並び替え、データの追加・削除などの方法を説明しました。

GASは無料で利用できてとても便利なツールです。

Googleスプレッドシート等のGoogleアプリケーションを利用されている方は、GASを習得することで作業を大きく効率化できます。

GASの基本構文を知りたい方は、下記もご覧ください。