対象のシート内でデータが入力されている最終列は
sheet.getLastColumn()
で取得できます
ここでは特定の列でデータが入力されている最終列を取得するということをやります
こういうシートがあって
1行目でデータが入っている最終列
3行目でデータが入っている最終列
をログに出してみます
コード.gs
function run() {
var row1 = 1;
Logger.log(getLastColumn(row1));
var row3 = 3;
Logger.log(getLastColumn(row3));
}
function getLastColumn(row) {
var sheet = SpreadsheetApp.getActiveSheet();
var values = sheet.getRange(row + ":" + row).getValues();
for (var i = values[0].length - 1; i >= 0; i--) {
if (values[0][i] != "") {
break;
}
}
var lastColumn = i + 1;
return lastColumn;
}
|
意訳この機能がやること 1行目で 値が入っている最終列を取得してログに出す 3行目で 値が入っている最終列を取得してログに出す この機能がやること(対象の行を受け取る) 現在のシートを取得する 受け取った行の列の値をすべて取得する その行の最後の列から値を見ていく 値が入っていたら 繰り返しから抜ける 値が入っている列を(配列は0始まりなので列数は+1) 返す |
参考
getRange(row, column)
https://developers.google.com/apps-script/reference/spreadsheet/sheet#getrangerow-column
getValues()
https://developers.google.com/apps-script/reference/spreadsheet/range#getvalue
getLastColumn()
https://developers.google.com/apps-script/reference/spreadsheet/sheet#getLastColumn()

