【GAS】スプレッドシートのオフセット機能まとめ【サンプルソース付】

快速ワーク
スポンサーリンク

GAS開発者向けにスプレッドシートのオフセット機能をすべてまとめました。

セルのデータを扱う時、オフセットを使いこなすとメチャメチャ便利で簡単になります。

いちいち行番号や列番号を意識するよりも、基準となるセルから縦と横にいくつズレるか、コレを意識する方がはるかに簡単な場面が必ずあります。

処理が簡単になれば、それだけできることも増えますので、ぜひ使いこなしてください。

オフセットに関するメソッドをすべて載せてます。少しでも参考になれば幸いです。


スポンサーリンク

Google Apps Script スプレッドシート 基礎 リファレンス

当ページは、GAS公式リファレンスを元にスプレッドシートの機能毎にまとめた基礎的な内容となっております。

若干、文言がおかしい可能性がありますが、あらかじめご了承ください。

 

GAS基本メソッドまとめ一覧はコチラ↓↓↓です。スプレッドシートの基本的な機能をまとめてますので、ぜひご活用ください。

【GAS】スプレッドシート基本メソッドまとめ一覧【初心者入門】
GAS開発者向けにスプレッドシートの基本的なメソッドを一覧にまとめました。各機能ごとのクラス、メソッドごとのサンプルソース付ページへリンクする一覧です。初心者にとって、スプレッドシートの基本的な操作・機能単位のメソッドを知...

 

まずは実際に動かしてみることをオススメします。マクロの登録方法は以下を参照いただければと思います。

【GAS】Googleスプレッドシートでマクロの使い方入門【動画付】
Googleの「Google Apps Script」通称GAS。GoogleマップやGメールなど、いろんなGoogle関連のサービスと自由に連携できたり、独自のWebアプリを開発することもできる、いろんな可能性を秘めたワクワクの...

 

GASの本はまだまだ少ないですね。基礎レベルであれば、以下の参考書が初心者にはベストの本です。

基本的な仕様やよく使われる機能の設定方法がまとまっています。

※JavaScriptの知識が既にある程度ある人にとっては冗長かもしれません。


セル範囲クラス[Range]のオフセット

セル範囲のオフセットメソッドです。

オフセット1[offset(オフセット行, オフセット列)]

offset(rowOffset, columnOffset)
指定された行数と列数だけこの範囲からオフセットされた新しい範囲を返します(負の値になることもあります)。新しい範囲は元の範囲と同じサイズです。

function offset1Sample(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange("A1");
  // 新しい範囲はB2を参照します
  var newCell = cell.offset(1, 1);
}
Parameters
名前タイプ説明
rowOffsetInteger範囲の左上のセルから下の行数。負の値は範囲の左上のセルから上に移動した行を表します。
columnOffsetInteger範囲の左上のセルから右の列数。負の値は範囲の左上のセルから左に移動した列を表します。

Return
Range - 連鎖用のセル範囲。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | offset(rowOffset, columnOffset)

オフセット2[offset(オフセット行, オフセット列, 行数)]

offset(rowOffset, columnOffset, numRows)
現在の範囲を基準とした新しい範囲を返します。現在の範囲の左上の点は、現在の範囲から指定の行と列、およびセルの指定の高さでオフセットされています。

function offset2Sample(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange("A1");
  // 新しい範囲はB2:B3を参照します
  var newRange = cell.offset(1, 1, 2);
}
Parameters
名前タイプ説明
rowOffsetInteger範囲の左上のセルから下の行数。負の値は範囲の左上のセルから上に移動した行を表します。
columnOffsetInteger範囲の左上のセルから右の列数。負の値は範囲の左上のセルから左に移動した列を表します。
numRowsInteger新しい範囲の行の高さ。

Return
Range - 連鎖用のセル範囲。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | offset(rowOffset, columnOffset, numRows)

オフセット3[offset(オフセット行, オフセット列, 行数, 列数)]

offset(rowOffset, columnOffset, numRows, numColumns)
現在の範囲を基準とした新しい範囲を返します。現在の範囲の左上の点は、現在の範囲から指定の行と列、およびセルの指定の高さと幅でオフセットされています。

function offset3Sample(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange("A1");
  // 新しい範囲はB2:C3を参照します
  var newRange = cell.offset(1, 1, 2, 2);
}
Parameters
名前タイプ説明
rowOffsetInteger範囲の左上のセルから下の行数。負の値は範囲の左上のセルから上に移動した行を表します。
columnOffsetInteger範囲の左上のセルから右の列数。負の値は範囲の左上のセルから左に移動した列を表します。
numRowsInteger新しい範囲の行の高さ。
numColumnsInteger新しい範囲の列の幅。

Return
Range - 連鎖用のセル範囲。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | offset(rowOffset, columnOffset)


最後に

GASオフセット機能のまとめをご紹介させていただきました。

必要に応じて、有益な情報でさらに更新していきたいと思います。

プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。

実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。

実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。

自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。

GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。

Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓

Googleスプレッドシートの使い方や機能がわかるショートカットキー全まとめ一覧【初心者こそ必見】
表計算ソフトとして、まだまだExcelのシェア率は高いですが、GoogleスプレッドシートにはExcelにはない超強力な関数があったり、Excelとは違って常に最新版を無料で使用できます。なにより、インターネットを使ったオンライン...

ショートカットキー一覧にもGASメソッドを載せています。どの操作からどのメソッドが呼ばれるのかイメージしてください。




コメント

//▼2023/04/08追加 //https://lovagelab.com/posts/3406/ //▲2023/04/08追加