犬わらノート

ゲームを作ったり、遊んだり

GoogleAppsScript - 1行おきにの背景色を変更する

Googleスプレッドシートで1行おきにの背景色を変更するために、
条件付き書式を使おうと思ったら、
条件指定が貧弱でうまくできなかった。


仕方がないので、
スクリプトで行ごとの色を変更。


function fillEvenRows()
{
  const COLOR1 = "#FFFFFF";
  const COLOR2 = "#FAFAFF";

  var sheet = SpreadsheetApp.getActiveSheet();
  var maxRow = 100;
  
  for (var i = 1; i <= maxRow; i++)
  {
    if (i % 2 == 1)
    {
      sheet.getRange(i + ":" + i).setBackground(COLOR1);
    }
    else
    {
      sheet.getRange(i + ":" + i).setBackground(COLOR2);
    }
  }
}


Googleスプレッドシートは最大行数が決まっていないので、
行数はデフォルト値の100でハードコーディング。


(sheet.getLastRow()は、値が入っている最終行の行数しか取れない)


列数の最大は256だけど、現在のシートの最大値は取れないので、
"n:n"のように行を指定している。
(2:2なら2行目となる)


(sheet.getLastColumn()も、値が入っている最終列の列数しか取れない)