GAS PR

[GAS]このセル範囲を起点として様々なセル範囲を取得する方法 -Rangeクラス-

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

Google Apps Script (GAS) でこのセル範囲を起点として、様々なセル範囲を取得する方法を説明します。

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

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

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

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

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

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

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

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

メソッド戻り値説明
getA1Notation()Stringこのセル範囲のセル位置を文字列として取得する
getCell(row, column)Rangeこのセル範囲のうち指定したセルを取得する
getNextDataCell(direction)Rangeこのセル範囲から指定した方向の次のセルを取得する
offset(rowOffset, columnOffset)Rangeこのセル範囲から指定した行・列数ずらしたセル範囲を取得する
offset(rowOffset, columnOffset, numRows)Rangeこのセル範囲から指定した行・列数ずらして指定した行数のセル範囲を取得する
offset(rowOffset, columnOffset, numRows, numColumns)Rangeこのセル範囲から指定した行・列数ずらして指定した行数・列数のセル範囲を取得する
getDataRegion()Rangeこのセル範囲を起点として上下左右の連続したデータのセル範囲を取得する
getDataRegion(dimension)Rangeこのセル範囲を起点として上下または左右の連続したデータのセル範囲を取得する

このセル範囲のセル位置を文字列として取得する

このセル範囲のセル位置を文字列として取得するメソッドを説明します。

このセル範囲のセル位置を文字列として取得する:getA1Notation()

このセル範囲のセル位置を文字列として取得する方法です。
変数にセットされているセル位置を確認する場合などに利用できます。

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

実行結果は下記になります。

このセル範囲をもとに他のセル範囲を取得する

このセル範囲をもとに様々な他のセル範囲を取得するメソッドを説明します。

このセル範囲のうち指定したセルを取得する:getCell(row, column)

このセル範囲のうち、インデックスで指定したセルを取得する方法です。

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

実行結果は下記になります。B2:D5のセル範囲のうち1行目の1列目を指定しているためB2になります。

このセル範囲から指定した行・列数ずらしたセル範囲を取得する:offset(rowOffset, columnOffset)

このセル範囲から指定した行数や列数ずらしたセル範囲を取得する方法です。
正の数で指定すると右や下へずらし、負の数を指定すると左や上にずらすことになります。

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

実行結果は下記になります。B2:E5から2行と3列ずらしてE4:H7になります。

下記のようにずらしたセル範囲を取得したことになります。行数と列数はもとのままです。

このセル範囲から指定した行・列数ずらして指定した行数のセル範囲を取得する:offset(rowOffset, columnOffset, numRows)

このセル範囲から指定した行数や列数ずらし、指定した行数のセル範囲を取得する方法です。
正の数で指定すると右や下へずらし、負の数を指定すると左や上にずらすことになります。

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

実行結果は下記になります。B2:E5から2行と3列ずらして1行になり、E4:H4になります。

下記のようにずらしたセル範囲を取得したことになります。

このセル範囲から指定した行・列数ずらして指定した行数・列数のセル範囲を取得する:offset(rowOffset, columnOffset, numRows, numColumns)

このセル範囲から指定した行数や列数ずらし、指定した行数および列数のセル範囲を取得する方法です。
正の数で指定すると右や下へずらし、負の数を指定すると左や上にずらすことになります。

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

実行結果は下記になります。B2:E5から2行と3列ずらして1行3列になり、E4:G4になります。

下記のようにずらしたセル範囲を取得したことになります。

このセル範囲の開始位置から指定した方向の連続したデータの次のセルを取得する:getNextDataCell(direction)

このセル範囲の左上のセルを起点として、指定した方向の連続したデータの次のセルを取得する方法です。「CTRL+矢印」でセルを移動するのと同じ動作になります。

方向は、下記で指定します。

指定する値方向
SpreadsheetApp.Direction.UP上方向
SpreadsheetApp.Direction.DOWN下方向
SpreadsheetApp.Direction.PREVIOUS左方向
SpreadsheetApp.Direction.NEXT右方向

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

下記のファイルで実行してみます。

下記の結果になります。指定したセル範囲の一番右のE2ではなく、データの存在するD2になります。「CTRL+→」と同じ動作です。

このセル範囲を起点として上下左右の連続したデータのセル範囲を取得する:getDataRegion()

このセル範囲を起点として、上下左右の方向の連続したデータのセル範囲を取得する方法です。「CTRL+A」でセル範囲を選択するのと同じ動作になります。

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

下記のファイルで実行してみます。

下記の結果になります。データの存在するB2:D5になります。「CTRL+A」で選択される範囲と同じ範囲を取得できます。

下記のセル範囲を取得したことになります。

このセル範囲を起点として上下または左右の連続したデータのセル範囲を取得する:getDataRegion(dimension)

このセル範囲を起点として、上下方向または左右方向の連続したデータのセル範囲を取得する方法です。

方向は、下記で指定します。

指定する値方向
SpreadsheetApp.Dimension.ROWS上下方向
SpreadsheetApp.Dimension.COLUMNS左右方向

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

下記のファイルで実行してみます。

下記の結果になります。上下方向でデータの存在するC2:C5になります。

下記のセル範囲を取得したことになります。

SpreadsheetApp.Dimension.COLUMNSを指定した場合は、下記になります。

まとめ

Google Apps Script (GAS) でこのセル範囲を起点として、様々なセル範囲を取得する方法を説明しました。

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

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

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