LoginSignup
1
0

More than 3 years have passed since last update.

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

Posted at

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);
}

参考リンク

1
0
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
0