2014年6月30日月曜日

[GAS] onEditで行の背景色変更


開発現場で作業をしていると
よく課題管理表というものを作成します。
Excelが使われることが多いですが、
完了した課題は行の背景色を変えて
完了したことをわかりやすくすることが多いです。

Excelを使っていれば「条件付き書式」を使って
「解決日に値が入ったら行の背景色をグレーにする」
などといった設定を簡単に行う事が出来ます。

しかし、残念ながらスプレッドシートにはその機能はありません。

代わりにGoogle Apps Scriptを書く必要があります。

↓の様なスプレッドシートがあったとします。
解決日に何か入力するとその行の背景色をグレーに設定する処理を作ります。

function onEdit(param) {
  var range = param.range;
  if (range.getColumn() != 6) {
    // 解決日の列以外の場合は処理を抜ける。
    return;
  }
  var sheet = SpreadsheetApp.getActiveSheet();
  if (range.getValue() == "") {
    // 解決日が空白になった場合は背景色を白にする。
    sheet.getRange(range.getRow(), 1, 1, 6).setBackground("#FFFFFF");
  } else {
    // 解決日が空白以外になった場合は背景色をつける。
    sheet.getRange(range.getRow(), 1, 1, 6).setBackground("#C0C0C0");
  }
}

試しに№3の解決日に日付を入れてみると

こんな感じで背景色が変わります。

ただし、スクリプトが走るため背景色が変わるまで若干のタイムラグがあります。

「ん?あれ?スクリプトがおかしくなったか?」

と思うくらい遅い場合もありますのでご注意を。


拍手する にほんブログ村 IT技術ブログ プログラム・プログラマーへ
にほんブログ村

プログラマー ブログランキングへ

0 件のコメント:

コメントを投稿