LANG SELRCT

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

2016年6月24日金曜日

ヘッダのテキストに一致する列に入力する



以下のようなデータがあるとき
カナの列に「サシスセソ」を入力する
ということをやった時に書いたコードです





コード.gs
var sh = SpreadsheetApp.getActiveSheet();

function set_value() {
  var header = "カナ";
  var value = "サシスセソ";
  var headers = get_headers()[0];
  var row = sh.getLastRow() + 1;
  var col = headers.indexOf(header) + 1;
  sh.getRange(row, col).setValue(value);
}

function get_headers() {
  var last_col = sh.getLastColumn();
  var range = sh.getRange(1, 1, 1, last_col);
  var headers = range.getValues();
  return headers;
}
意訳.gs
今開いているシートを取得する

この処理は以下を実行する
入力したい列の値
入力したい値
1行目のすべての値を取得して
入力したい行(最終行の次の行)を取得して
入力したい列をみつけて
入力したい値を入力する


この処理は以下を実行する
値が入っている最終列を取得して
1行目の1列目から1行分、last_col列までの
値を取得して
返す




おまけ


var headers = get_headers()[0];
の[0]について

function get_headers() {}内でreturnしているheadersの中身を
ログに出して見てみるとこのようになっている


get_headers()で返ってくるのが [[かな, カナ, 半角カナ]]なので
get_headers()[0]とすると[かな, カナ, 半角カナ]を取得できる


ログに出すコード.gs
function get_headers() {
var last_col = sh.getLastColumn();
var range = sh.getRange(1, 1, 1, last_col);
var headers = range.getValues();
Logger.log(headers);
return headers;
}



参考
https://developers.google.com/apps-script/reference/spreadsheet/sheet