Help us understand the problem. What is going on with this article?

【GAS】状態に合わせてシートのセル背景色を変更する

GASのトリガー実行で定期的にリンク先のチェックを行うような例です。
実際のやりたいことはちょっと違いますが、今回は下記のようなスプレッドシート(テーブル)で書きます。

name url response_code
example http://example.com 404
Qiita https://qiita.com 200
foo http://bar.com

要件

  • 時間ベースのトリガーでシートに記載しているURLの存在チェックを実施
  • UrlFetchApp.fetchの結果から取得できるステータスコードをresponse_codeカラムに上書き
  • 未チェックの場合、response_codeカラムは空。

結論(コード)

一応、2パターン。

破壊的変更なし

function updateBackgroundsColor() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const dataRange = sheet.getRange();

  const data = dataRange.getValues();
  const colors = data.map((row) => {
    // ステータスコード200の時とそれ以外の時のカラーコード定義
    const color = row[2] === 200 ? '#acd33f' : '#e41134';
    return row.slice().fill(color);
  });

  dataRange.setBackgrounds(colors);
}

破壊的変更あり

function updateBackgroundsColor() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const dataRange = sheet.getRange();

  const data = dataRange.getValues();
  data.forEach((row) => {
    const color = row[2] === 200 ? '#acd33f' : '#e41134';
    row.fill(color);
  });

  dataRange.setBackgrounds(data);
}

参考リンク

https://www.yukibnb.com/entry/gas_sheet_setBackgrounds

abct93
WEBエンジニア、iOS開発も少々。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away