Skip to content

Instantly share code, notes, and snippets.

@zaki-yama
Created January 28, 2015 04:42
Show Gist options
  • Save zaki-yama/eca95458364230d6850b to your computer and use it in GitHub Desktop.
Save zaki-yama/eca95458364230d6850b to your computer and use it in GitHub Desktop.
セル編集時に行の色を変更するApps Script
// Enum
var Status = {
FINISHED: '完了',
PROCESSING: '対応中',
PENDING: '保留',
CANCELED: '対応しない'
};
var Color = {
FINISHED: '#ead1dc',
PROCESSING: '#E8FFBD',
PENDING: '#dddddd',
CANCELED: '#999999'
};
var STATUS_COL = 10;
/**
* ステータスが編集された時に背景色を変更する
* @param e events {@see https://developers.google.com/apps-script/understanding_events?hl=ja}
*/
function onEdit(e) {
var sheet = e.source.getActiveSheet(),
range = sheet.getDataRange(),
dataLength = range.getValues()[0].length,
row = e.range.getRow(),
col = e.range.getColumn();
// var sheet = SpreadsheetApp.getActiveSheet();
Logger.log('Edited at (' + row + ',' + col + ')');
if (col !== STATUS_COL) {
return;
}
Logger.log(row);
switch (e.value) {
case Status.FINISHED:
sheet.getRange(row, 1, 1, dataLength).setBackground(Color.FINISHED);
break;
case Status.PROCESSING:
sheet.getRange(row, 1, 1, dataLength).setBackground(Color.PROCESSING);
break;
case Status.PENDING:
sheet.getRange(row, 1, 1, dataLength).setBackground(Color.PENDING);
break;
case Status.CANCELED:
sheet.getRange(row, 1, 1, dataLength).setBackground(Color.CANCELED);
break;
default:
sheet.getRange(row, 1, 1, dataLength).setBackground('white');
break;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment