GASで1行取得したり、getRangeで列全体を取得する方法のコピペで使えるサンプルコードをまとめています。
この記事で解説しているメソッド
getRange()
getMaxRows()
getMaxColumns()
getLastRow()
getLastColumn()
getNextDataCell()
getRow()
getColumn()
GASで1列全体を取得する(データ無視)
GASで1列全体を取得するには、最終列を取得してgetRangeで変数を使用していきます。
GASで1列取得サンプルコード(データの有無は関係なし)
function sample() {
//アクティブシートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//シートの最終列を取得
var lastCol = sheet.getMaxColumns();
//A1から最終列まで1行全体の値を取得
var rowData = sheet.getRange(1,1,1,lastCol).getValues();
//1行全体のデータをログに出力
Logger.log(rowData);
}
「var lastCol = sheet.getMaxColumns();」
スプレッドシートの最終列を取得して、変数「lastRow」に格納
getMaxColumns()メソッドは、シート内のデータの有無は関係なく最終列を取得するメソッドです。
「var rowData = sheet.getRange(1,1,1,lastCol).getValues();」
getRangeの範囲(プロパティ)は、getRange(行、列、行数、列数)なので、
「1行、1列、1(行数)、最終列(列数)」と最終行の変数を使用して取得しています。
GASで1列全体を取得する(データがある箇所、途中空白セル含む)
function sample() {
//アクティブシートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//データがある最終列を取得
var lastCol = sheet.getLastColumn();
//A1からデータがある最終列までの値を取得
var rowData = sheet.getRange(1,1,1,lastCol).getValues();
//取得したデータをログに出力
Logger.log(rowData);
}
getLastColumn()はデータがある最終列を取得するメソッドです。
途中の空白セルも含まれます。
「var lastCol = sheet.getLastColumn();」
最終列を取得して変数「lastCol」に格納しています。
GASで1列全体を取得する(空白セル手前まで)
空白セルの手前までの列全体を取得するには、getNextDataCell()とgetColumn()メソッドを使用します。
GASで1列全体を取得する(空白セル手前まで)サンプルコード
function sample() {
//アクティブシートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//A1から右に向かって空白セルの手前までの列数を取得
var collength = sheet.getRange(1,1)
.getNextDataCell(SpreadsheetApp.Direction.NEXT).getColumn();
//A1から空白の手前列までの値を取得
var rowData = sheet.getRange(1,1,1,collength).getValues();
//取得したデータをログに出力
Logger.log(rowData);
}
「var collength = sheet.getRange(1,1)
.getNextDataCell(SpreadsheetApp.Direction.NEXT).getColumn();」
getNextDataCell()のプロパティは、
セルの左から右に向かって取得する「NEXT」、
セルの右からから左に向かって取得する「PREVIOUS」、
セルの上から下に向かって取得する「DOWN」、
セルの下から上に向かって取得する「UP」があります。
今回はA1セルから右に向かって空白行の手前までの最終列を取得するために、
セルの左から右に向かって取得する「NEXT」を使用しています。
getNextDataCell()のプロパティについて詳しくはこちら
getRangeで行全体を取得する(データ無視)
getRangeで行全体を取得するには、列の時と同じく最終行を取得して変数に格納してからgetRangeで取得していきます。
getRangeで行全体取得サンプルコード(データの有無は関係なし)
function sample() {
//アクティブシートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//シートの最終行を取得
var lastRow = sheet.getMaxRows();
//1列全体(A1:A)の値を取得
var colData = sheet.getRange(1,1,lastRow,1).getValues();
//1列全体(A1:A)のデータをログに出力
Logger.log(colData);
}
「var lastRow = sheet.getMaxRows();」
スプレッドシートの最終行を取得して、変数「lastRow」に格納
getMaxRows()メソッドは、シート内のデータの有無は関係なく最終行を取得するメソッドです。
「var colData = sheet.getRange(1,1,lastRow,1).getValues();」
getRangeの範囲(プロパティ)は、getRange(行、列、行数、列数)なので、最終行の変数を使用して取得しています。
「1行、1列、最終行(行数)、1行(行数)」=「A1:A」です。
getRangeで行全体を取得する(データがある箇所、途中空白セル含む)
function sample() {
//アクティブシートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//データがある最終行を取得
var lastRow = sheet.getLastRow();
//A1からデータがある行までの値を取得
var colData = sheet.getRange(1,1,lastRow,1).getValues();
//取得したデータをログに出力
Logger.log(colData);
}
GASでデータがある範囲の1行全体を取得するには、
データがある最終行を取得できるgetLastRow()メソッドを使用します。
「var lastRow = sheet.getLastRow();」
データのある最終行を取得して変数「lastRow」に格納しています。
getRangeで行全体を取得する(空白セル手前まで)
空白セル手前までの行全体を取得するには、列の時と同じくgetNextDataCell()メソッドを使用して、getRow()で空白セル手前までの行数を取得します。
function sample() {
//アクティブシートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//A1から下に向かって空白セルの手前までの行数を取得
var rowlength = sheet.getRange(1,1)
.getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow();
//A1から空白の手前行までの値を取得
var colData = sheet.getRange(1,1,rowlength,1).getValues();
//取得したデータをログに出力
Logger.log(colData);
}
「var rowlength = sheet.getRange(1,1)
.getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow();」
空白セルの手前までの行数を取得したいため、getNextDataCell()を使ってセルの上から下に向かって取得する「DOWN」を使用しています。
A1から下に向かって空白セルの手前までの行数を取得しています。
最終行や最終列の取得方法や、ダウンロードして使用できるサンプルデータなどは、こちらの記事で解説しています。
スプレッドシートで行列取得まとめ サンプルデータDL有
GASのコードは、コピペして使ったり、実際に動かした方がわかりやすく応用もしやすいので、このサイトではサンプルコードや、ダウンロードして使えるサンプルデータを配布しています。
各記事にてダウンロードできるようになっていますので、
他の記事も参考にしてみてください。
ありがとうございました!
コメント
列と行が反対じゃないですか?
ご指摘ありがとうございます!!
寝ぼけてたみたいです・・・。
修正しました!ありがとうございました!