スプレッドシートで情報を管理してて、作業が完了したらセルにチェックを入れる。
その時にパッと見で判るように完了した行にまるっと背景色を付けたい。そんなメモです。
セルに背景色を付けるだけなら、条件式付き書式設定ルールで簡単に行うことができます。
しかし、行をまるっととなると条件式付き書式設定ルールでは実現できそうになかったので、スクリプトを書いて実装します。
- メニューのツールから**スクリプトエディタ...**を選択してエディタを開きます。
- スクリプトを書きます。
- エディタのリソースをクリックして、**現在のプロジェクトのトリガー**を選択
- 実行を
onEditEvent
、イベントをスプレッドシートから
・編集時
にして保存
// シートに変更があった時に実行する関数 function onEditEvent(evt) { // 変更のあったシート var ss = evt.source.getActiveSheet(); // 変更のあったセル var cell = evt.source.getActiveRange(); // 変更のあったセルの値 var val = cell.getValue(); // 変更のあったセルの列が1番目のA列 かつ 値が 1か-1だった時に if( cell.getColumn() == 1 && ( val == 1 || val == -1 ) ) { // 変更のあったセルの有る行番号 var r = cell.getRow(); // 変更のあったセルの有る行を選択 var rowRange = ss.getRange(r, 1, 1, 11); if(val == 1) { // 値が 1なら RGB(102, 187, 221) の背景色にする rowRange.setBackgroundRGB(102, 187, 221); } else { // 値が -1なら RGB(200, 200, 200) の背景色にする rowRange.setBackgroundRGB(200, 200, 200); } } }
元のスプレッドシートに戻って、A列に1
か-1
を入力してみて行の背景色がまるっと変更されれば成功です。
スプレッドシートのgetColumn()
は先頭が多くのプログラムと違って1だったので少しハマりした。
- getColumn() - Apps Script | Google Developers
- setBackgroundRGB(red, green, blue) - Apps Script | Google Developers
101デザインメソッド ―― 革新的な製品・サービスを生む「アイデアの道具箱」
- 作者: ヴィジェイ・クーマー,Vijay Kumar,渡部典子
- 出版社/メーカー: 英治出版
- 発売日: 2015/02/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
はてなのマークダウンでリンクを_blankにする方法ってないのかしら?