LANG SELRCT

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

2018年11月27日火曜日

特定の範囲に特定の値を一気に入力したい


特定の列から、値が入っている最後の列まで、指定した文字列を入力したくて書いたコードです。


2行目の5列目から
このシートで値が入っている最後の列(L列)まで
OKという文字列を入力する



コード.gs
function setValuesSpecificRange() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var lastColumn = sheet.getLastColumn();
  var startRow = 2;
  var startColumn = 5;
  var numRows = 1;
  var numColumns = (lastColumn - startColumn) + 1;
  var value = 'OK';
  var values = creteValues(numColumns, value);
  var range = sheet.getRange(startRow, startColumn, numRows, numColumns);
  range.setValues([values]);
}

function creteValues(num, value) {
  var values = [];
  for(var i = 0; i < num; i++) {
    values.push(value);
  }
  return values;
}
意訳
この機能がやること
シートを取得する
値が入っている最終列を取得する
開始行
開始列
行数
列数
入力する値
入力する値を列数分作成する
対象の範囲を指定して
入力する


この機能がやること
配列を用意する
引数で受け取ったnumの数だけ繰り返す
引数で受け取ったvalueの数だけ配列に追加する

出来上がった配列を返す



参考

getRange(row, column, numRows, numColumns)
https://developers.google.com/apps-script/reference/spreadsheet/sheet#getrangerow-column-numrows-numcolumns

setValues(values)
https://developers.google.com/apps-script/reference/spreadsheet/range#setValues(Object)