よく使いそうなので個人メモ。
スプレッドシートではしばしば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秒くらいで終わるぽい。