Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2019年3月10日日曜日

行の値が編集された時、特定のヘッダの列に日時を入力したい


特定のヘッダの列に日時を入力したくて書いたコード

この記事でやること
  • ヘッダの値を見て、dateならその列に日時を入力する



日時を入力する条件
  • dataの列が編集された時は入力しない
  • 1行目が編集された時は入力しない
if(col !== targetCol && row > 1)



コード.gs
function onEdit() {
  var header = "date";
  
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var range = sheet.getActiveRange();
  var row = range.getRow();
  var col = range.getColumn();
  var date = new Date();
  set_value(sheet, row, col, date, header)
}


function set_value(sheet, row, col, value, header) {
  var headers = get_headers(sheet)[0];
  var targetCol = headers.indexOf(header) + 1;
  if(col !== targetCol && row > 1){
    sheet.getRange(row, targetCol).setValue(value);
  }
}

function get_headers(sheet) {
  var last_col = sheet.getLastColumn();
  var range = sheet.getRange(1, 1, 1, last_col);
  var headers = range.getValues();
  return headers;
}



関連記事

Latest post

Google Classroom API でクラスの一覧を取得したい

自分が指導・参加しているクラスの名称とIDを取得するコードを試しました 下記 Code.gs では pageSize で 100 を設定していますが 必ず 100件 返ってくるとは限らないらしいです https://developers.google.com/workspace/...