GASのgetRangeで複数範囲、離れたセルを取得することは可能?正しい使い方を解説

今回は、GASのgetrangeについて解説していきます。

getRangeで値の取得や書き出しができます。
この記事で、正しい使い方を知っていってください!

【結論】getRangeで複数範囲、離れたセルを取得することは可能??

残念ながら、getRangeで、複数範囲、離れたセルを取得することはできません。

getRangeの書き方は、

getRange(最初のセルの行 , 最初のセルの列 , 範囲の行数 , 範囲の列数 )

で書きます。そのため、単一のセル、もしくは、単一の範囲のみが取得できる書き方になっています。

では、複数範囲や離れたセルを取得するにはどうすれば良い?

複数範囲や離れたセルを取得するには、

getRange を2回使う必要があります。

例えば、次のような二つの範囲を取得する場合です。

この場合は、次のように書きます。

let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByNaem("シートの名前")
sheet.getRange(1,1,4,2).getValues();
sheet.getRange(4,4,3,2).getValues();

1つのgetRangeの式にはできなく、2つの式を書く必要があります。

離れたセルを取得する場合も同じです。

getRange() を2回使って、セルを指定する必要があります。

let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByNaem("シートの名前")
sheet.getRange(1,1).getValue();
sheet.getRange(4,4).getValue();

もし規則的に複数の範囲やセルが並んでいる場合

もし、複数範囲が、規則的に並んでいる場合は、for文を使って取得することも可能です。

for文を用いて、3行おきに出現するセルを取得する。

3列分の範囲を3行ごとに取得する。などです。

これらの規則性がある場合には、for文を活用して取得することも可能です。

getRangeの正しい使い方

ここで、getRangeの正しい使い方についておさらいしておきましょう。

getRangeの使い方は、単一のセルを取得するのか、範囲を取得するのかで変わってきます。

次の2つがあることを覚えておきましょう。

getRange( 行 , 列 ) で指定

getRange( 開始行 , 開始列 , 範囲の行幅 , 範囲の列幅 ) で指定

もし、より詳しく知りたい方は、以下の記事で解説しています。併せて読んでみてください。

まとめ

今回は、GASのgetRangeで複数範囲、複数セルを取得できるのかについて解説していきました。

getRangeを使う時には、スプレッドシートとの連携が必須です。

まだよくわかっていない方は、以下の記事を参考にしてみてください。

(Visited 1,892 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA