条件付き書式を1行でやる

2011/08/19 7:15 に Masakazu Muraoka が投稿
SpreadSheetの条件付き書式は便利ですが、1セルにしか適応できません。

例えば、簡単なTODOリストを作成して、完了したタスクの行をグレーにしたいとしましょう。その場合には条件付き書式ではやや不十分です。





ここでは、GASのonEditハンドラを利用して条件付き書式を1行に適用する処理を作ってみます。

サンプルコードは以下です。

function onEdit(event)
{
  var keyword = '完了';
  var keywordCol = 4;
  var columnStart = 1;
  var columnNum = 5;
  var range = event.source.getActiveRange();
  var rowidx = range.getRow();
  var sheet = event.source.getActiveSheet();
  if( sheet.getRange(rowidx, keywordCol).getValue() == keyword ){
    sheet.getRange(rowidx, columnStart, 1, columnNum).setBackgroundColor('gray');
  } else {
    sheet.getRange(rowidx, columnStart, 1, columnNum).setBackgroundColor('white');
  }
}

サンプルコードでは、4列目の「ステータス」に keyword で定義された「完了」という文字が入力されると 1列目から5列目がグレーになります。グレーにする範囲は columStart, columNum の数値を変更することで調整できます。

function onEdit(event) で定義している onEdit はスプレッドシートが編集されたときに呼び出されるイベントハンドラです。引数のeventには編集されたセルの情報などが格納されています。

onEditを使うとスプレッドシート編集に便利な処理を作り込むことができます。
このサンプルの他にもいろいろな使い道があるので試してみてください。
Comments