1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

特定の列を見て、条件に合ったら横一列に色を塗る

Posted at

よく使いそうなので個人メモ。

スプレッドシートではしばしばxx管理一覧を作成するが、
条件付き書式では、とある列を見て横一列の色を替えることができなかったので、
今回はL列(確認者欄)に名前が入ったら列をクローズするスクリプトを作成。

function coloring() {
  var spreadSheet = SpreadsheetApp.openById("スプレッドシートID");
  var targetSheet = spreadSheet.getSheetByName("シート名");
  
  // 今回はB4:Mxxx(最大row数)を対象にしたかったので、それを指定
  var values = targetSheet.getRange(4, 2, targetSheet.getLastRow(), 12).getValues();
  for (var i = 0; i < values.length; i++) {
    // B列が空だったら処理を終わる
    if (values[i][0] == "") {
      Logger.log("break row: " + i);
      break;
    }
    // L列が空ではない場合該当行の4〜12列をグレー背景
    if (values[i][10] != "") {
      targetSheet.getRange(i + 4, 2, 1, 12).setBackground("#6E6E6E");
    } 
  }
}

1シート500行くらいでも、targetSheet.getRange("B5").getValue() を多用すると、
処理が1,2分に返ってこないようになってしまう。

targetSheet.getRange("B5:M500").getValues()を使用して、配列をloopすると2秒くらいで終わるぽい。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?