【初心者向けのGAS】スプレッドシートの最後の列(最終列)を取得する方法

よこのじ(@yokonoji_work)です。

Google Apps Script(GAS)で「スプレッドシートの最後の列(最終列)を取得する方法」をご紹介します。

セルを指定する方法「【初心者向けのGAS】スプレッドシートの範囲指定したセルから値を取得する方法」と合わせてご活用ください。

最後の列(最終列)を取得する方法

スプレッドシートの最後の行(最終行)を取得するためには、対象のシートを指定しておく必要があります。

// スプレッドシートを取得する 
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 
// シートを取得する
var sheet = spreadsheet.getSheetByName("シート1");

シート全体の最後の列(最終列)を取得する方法

シート全体の最後の列(最終列)を取得するには、getLastColumnメソッドを使用します。

var lastColumn = sheet.getLastColumn();

シート全体の最後の列(最終列)を取得するため、最も列数が多い2行目が対象となります。よって、次の例では lastColumn に 4 という結果が格納されます。

最終列の取得

ちなみに、次のように途中に空白列があったとしても、最終列を取得できます。この場合の最終列は 5 です。

空白がある場合の最終列

特定の列の最後の列(最終列)を取得する方法

各行の最終列を取得したい場合もあるかと思います。

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = spreadsheet.getSheetByName("シート1");

function myFunction() {
  // シート全体の最終列を取得
  var lastColumnAll = sheet.getLastColumn();
  // 取得したい行を指定 1行目=>1, 2行目=>2,・・・
  var row = 3;

  // 指定した列の最終行を取得
  var last_column = lastColumn(lastColumnAll, row);
  Logger.log(last_column);
}
function lastColumn(lastColumnAll, row) {
  var range = sheet.getRange(row, 1, row, lastColumnAll).getValues();
  for(var i=lastColumnAll-1; i>=0; i--){
    if(range[0][i] != ""){
      return i + 1;
    }
  }
}

lastColumn関数には「シート全体の最終列」と「最終列を取得したい行」を引数として渡しています。

これらの情報を元にして、下図のように空ではないセルを探します。そして、値があればその行が最終列となります。

特定の行の最終列

var row = 3; (3行目)を指定すると最終列は 4 となりますし、1行目なら3といった値を取得できます。

 

最終行を取得したい場合は「【初心者向けのGAS】スプレッドシートの最後の行(最終行)を取得する方法」を参照ください。

Google Apps Script(GAS)で要素ごとの操作方法を覚えれば、あとはどう組み合わせるか。