GAS開発者向けにスプレッドシートのオフセット機能をすべてまとめました。
セルのデータを扱う時、オフセットを使いこなすとメチャメチャ便利で簡単になります。
いちいち行番号や列番号を意識するよりも、基準となるセルから縦と横にいくつズレるか、コレを意識する方がはるかに簡単な場面が必ずあります。
処理が簡単になれば、それだけできることも増えますので、ぜひ使いこなしてください。
オフセットに関するメソッドをすべて載せてます。少しでも参考になれば幸いです。
Google Apps Script スプレッドシート 基礎 リファレンス
当ページは、GAS公式リファレンスを元にスプレッドシートの機能毎にまとめた基礎的な内容となっております。
若干、文言がおかしい可能性がありますが、あらかじめご了承ください。
GAS基本メソッドまとめ一覧はコチラ↓↓↓です。スプレッドシートの基本的な機能をまとめてますので、ぜひご活用ください。
まずは実際に動かしてみることをオススメします。マクロの登録方法は以下を参照いただければと思います。
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);
}
名前 | タイプ | 説明 |
---|---|---|
rowOffset | Integer | 範囲の左上のセルから下の行数。負の値は範囲の左上のセルから上に移動した行を表します。 |
columnOffset | Integer | 範囲の左上のセルから右の列数。負の値は範囲の左上のセルから左に移動した列を表します。 |
Return
Range - 連鎖用のセル範囲。
オフセット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);
}
名前 | タイプ | 説明 |
---|---|---|
rowOffset | Integer | 範囲の左上のセルから下の行数。負の値は範囲の左上のセルから上に移動した行を表します。 |
columnOffset | Integer | 範囲の左上のセルから右の列数。負の値は範囲の左上のセルから左に移動した列を表します。 |
numRows | Integer | 新しい範囲の行の高さ。 |
Return
Range - 連鎖用のセル範囲。
オフセット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);
}
名前 | タイプ | 説明 |
---|---|---|
rowOffset | Integer | 範囲の左上のセルから下の行数。負の値は範囲の左上のセルから上に移動した行を表します。 |
columnOffset | Integer | 範囲の左上のセルから右の列数。負の値は範囲の左上のセルから左に移動した列を表します。 |
numRows | Integer | 新しい範囲の行の高さ。 |
numColumns | Integer | 新しい範囲の列の幅。 |
Return
Range - 連鎖用のセル範囲。
最後に
GASオフセット機能のまとめをご紹介させていただきました。
必要に応じて、有益な情報でさらに更新していきたいと思います。
プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。
実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。
実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。
自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。
GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。
Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓
ショートカットキー一覧にもGASメソッドを載せています。どの操作からどのメソッドが呼ばれるのかイメージしてください。
コメント