このようなシートがある時に
データが入っている最終行と最終列を取得して範囲を取得します
コード.gsを実行すると以下のように取得した範囲がログに出ます
今回の例で使ったシートのデータ
コード.gs
function get_data_range() { var start_row = 2; var start_col = 1; var sh = SpreadsheetApp.getActiveSheet(); var last_col = sh.getLastColumn(); var last_row = sh.getLastRow(); var num_rows = last_row - (start_row - 1); var num_cols = last_col - (start_col - 1); var range = sh.getRange(start_row, start_col, num_rows, num_cols); Logger.log(range.getA1Notation()); } |
意訳.gsこの処理は以下を実行する 対象範囲の先頭行を指定し(例では2行目) 対象範囲の先頭列を指定し(例では1列目(A列)) 対象のシートを指定して(例では今開いているシート) データが入っている最終列を取得し データが入っている最終行を取得し 対象の行の数を取得し 対象の列の数を取得し 2行目の、1列目から、対象の行数、対象の列数を範囲に指定して A1表記でログに出す |
getRange("A2:B4")
のように直接範囲を指定するやり方だと
行や列が増えた時に範囲を再設定する必要があり
大体の場合でA2以降に入力されているすべての行・列を範囲に設定し直しているので
今回はそれを自動化でやるコードを書きました
関連記事
参考
getRange(row, column, numRows, numColumns)
https://developers.google.com/apps-script/reference/spreadsheet/sheet#getRange(Integer,Integer,Integer,Integer)
getA1Notation()
https://developers.google.com/apps-script/reference/spreadsheet/range#getA1Notation()
参考
getRange(row, column, numRows, numColumns)
https://developers.google.com/apps-script/reference/spreadsheet/sheet#getRange(Integer,Integer,Integer,Integer)
getA1Notation()
https://developers.google.com/apps-script/reference/spreadsheet/range#getA1Notation()