LANG SELRCT

コードを書く場所についてはこちら

2018年2月16日金曜日

シートの行を削除する


指定した行以降を削除するコードの例です

  • .getMaxRows() でシート内の最終行(データの有無は不問)を取得
  • .deleteRows(rowPosition, howMany) でどの行から何行削除するかを決めて削除



コード.gs
function delete_rows(){
 var sh_id = SHEET_ID;
 var sh = get_sheet(sh_id);
 var max_row = sh.getMaxRows();
 var start_row = 3;
 var num_row = max_row - start_row + 1;
 sh.deleteRows(start_row, num_row);
}

function get_sheet(sh_id) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var shs = ss.getSheets();
  for (var i = 0; i < shs.length; i++) {
    if (shs[i].getSheetId() == sh_id) {
      break;
    }
  }
  var sh = ss.getSheets()[i];
  return sh;
}
意訳
この機能がやること
シートIDを指定して
get_sheet()に渡してシートを取得して
シートの最終行を取得して(データの有無は関係なく)
削除する先頭の行を指定して
最終行から削除する先頭の行を引いて+1行(削除する先頭の行も含める)
削除する行の範囲を指定して削除する


この機能がやること
現在開いているスプレッドシートを取得して
シートをすべて取得して
シートの数だけ以下を繰り返す
シートのIDが渡されたシートIDなら
for文から抜ける


対象のシートを取得して
返す