【GAS】スプレッドシートのセルに背景色を設定し、色掛けする方法(setBackground)

スプレッドシートで表を作成したケースなどで見やすくするため、セルに背景色を設定して色掛けして、列の項目名とデータを区別します。

Google Apps Script(GAS)でもスプレッドシートのセルに背景色を設定し、色掛けする方法を解説します。

セルの背景色を設定、スプレッドシートの表を見やすく

スプレッドシートで表を作成した場合、そのままのデータだと表が見づらいケースが多いです。

そこで、表の視認性を高め、見やすくするために、セルの背景色を設定し、色掛けします。

GoogleスプレッドシートでVLOOKUP関数を活用する際のサンプル例の表

このように1行目に各列にその列のデータを示す項目名に色掛けしただけでも、表として見やすくなります。

表の見た目のフォーマットもGoogle Apps Script(GAS)で操作できます。

GASのスクリプト処理でデータをスプレッドシートに出力するだけでなく、表データとして見栄えを整えると自動化で楽になります。

セルの背景色はGASのsetBackgroundで設定

Google Apps Script(GAS)でスプレッドシートのセル背景色を設定するには、setBackgroundメソッドを利用します。

Range.setBackground('[カラー名orカラーコード]')

getRangeメソッドなどで実行したセル範囲のRangeオブジェクトに対して、setBackgroundを実行します。

setBackgroundメソッドの引数には、カラー名(redやblue)または、カラーコード(#FF0000や#0000FF)を指定します。

Google Apps ScriptのsetBackgroundメソッドで引数に指定可能なカラー名とカラーコード例

Webサイトなどで用いられるCSSで指定できるカラーコードの大半はGASのsetBackgroundメソッドで指定可能です。

セルに色掛けするGASサンプルコード

実際にスプレッドシートに用意した表に対し、項目名のセルや一部のセルに色掛けするGoogle Apps Script(GAS)のサンプルコードを解説します。

Google Apps Script(GAS)でセルの背景色を色掛けする表

上記の表の1列目の項目名と、BMIの値が標準を超えてしまっているじろうに色掛けしたいと思います。

Google Apps Script(GAS)のsetBackgroundメソッドでスプレッドシートのセル背景色を色掛けするサンプルスクリプト

function setBkColor() {
//アクティブなスプレッドシートを読み込み
let mySheet = SpreadsheetApp.getActiveSheet();
//A3セルを赤色の背景色で色掛け
mySheet.getRange(3,1).setBackground(red);
//項目名となる1列目を明るい黄色の背景色で色掛け
mySheet.getRange(1,1,1,4).setBackground('#fff2cc');
}

まず、アクティブなシートを読み込んだ上で、BMIが基準値を上回っているA3セルのじろうのセルを赤色に色掛けします。

次に項目名となる1列目をスプレッドシードのデフォルトのカラーチャートにある明るい黄色(カラーコード:#fff2cc)を設定します。

setBackgroundメソッドを実行するGoogle Apps Scriptのサンプルコードを実行した結果、特定のセルが色掛け

GASサンプルコードを実行すると、想定した通りのセルがそれぞれ色掛けされていることが確認できます。

今回は単純にセルを指定しましたが、BMIの値を参照し、一定値以上の場合はアラートのためセルを色掛けするといった処理もGASで実装可能です。

セルの背景色の色掛けを取り除く方法

背景色が設定されているセルの色掛けを取り除く(スプレッドシートでいうところの塗りつぶしのリセット)も、Google Apps Script(GAS)で実行可能です。

セルに設定された背景色の塗りつぶしをGASでリセットするには、setBackgroundメソッドの引数で「null」を指定して実行します。

Range.setBackground(null)

※nullはシングル(ダブル)クォーテーションで囲む必要はありません。

色掛けを取り除きたいセル範囲のRangeオブジェクトで「setBackground(null)」を実行すると、セルの背景色がリセットされ、消すことができます。

setBackgroundObjectとの違いは?

なお、setBackgroundと入力すると、候補のメソッドで「setBackgroundObject」というのも表示されます。

setBackgroundとsetBackgroundObjectの違いは、指定する引数です。

  • setBackground:カラー名やカラーコードの文字列
  • setBackgroundObject:Colorオブジェクト

引数に指定するタイプが異なるため、そのまま同じ書き方はできません。

ただ、色をGASスクリプトで調整するようなケースを除いては、基本的に利用するのはsetBackgroundメソッドです。

まとめ・終わりに

今回、Google Apps Script(GAS)でスプレッドシートのセル背景色を色掛けする方法を紹介しました。

GASで色掛けしたいセルをgetRangeで指定した後、setBackgroundメソッドで引数に指定したカラー名orカラーコードを背景色に設定できます。

このセルの背景色設定をGASで自動化できれば、データ処理した結果をスプレッドシートに書き込むだけでなく、人間が見やすい表に整えることも可能です。

GASでデータ出力だけでなく、見栄えも整えて見やすいスプレッドシートにしたい場合にsetBackgroundを活用しましょう。