セル範囲を操作する

【GAS】スプレッドシートで配列セル範囲の背景色を変更する

GASでスプレッドシートで配列セル範囲の背景色を変更するには「setBackgroundObjects(color)」を利用する。

setBackgroundObjects(color)

背景色の長方形のグリッドを設定します(この範囲のディメンションと一致させる必要があります)。

https://developers.google.com/apps-script/reference/spreadsheet/range#setbackgroundobjectscolor

スプレッドシートで配列セル範囲の背景色を変更するGAS実行の様子

setBackgroundObjects(color)メソッドを利用して、スプレッドシートで配列セル範囲の背景色を変更するGASを実行してみました。

setBackgroundObjects(color)
setBackgroundObjects(color)を実行した様子

setBackgroundObjects(color)を実行することで、配列セルに対し一度に異なる背景色を設定することが可能です。

ただし、

  • カラー設置対象の範囲
  • 配列範囲

上記2つの範囲設定は同じ範囲設定でないと、setBackgroundObjects(color)は機能しません

スプレッドシートで任意のセル背景色を設定する場合は、以下記事を御覧ください。

参照記事:【GAS】スプレッドシートで全てのセル背景色を設定する

スプレッドシートで配列セル範囲の背景色を変更するGAS

function setBackgroundObjects(){
  //SpreadsheetAppを起動
  let ss = SpreadsheetApp.getActiveSpreadsheet();
  //0番目のシートを選択
  let sht = ss.getSheets()[0];
  //シートコンテンツクリア
  sht.clear();

  //YESNOで作業確認
  let yesno = Browser.msgBox("任意セルをスタートにセル背景色ACCENT1~ACCENT6を設定しますか?",Browser.Buttons.YES_NO);
  //YESなら
  if( yesno == "yes" ){
    //始点セルを入力してもらう
    const start = Browser.inputBox("始点セルを入力(A1形式)");
    //始点セルの行数を取得
    const rw = sht.getRange(start).getRow();
    //始点セルの列数を取得
    const cl = sht.getRange(start).getColumn();
    //カラー指定となる各ACCENTを変数colorに格納
    let color1 = SpreadsheetApp.newColor()
        .setThemeColor(SpreadsheetApp.ThemeColorType.ACCENT6)
        .build();
    let color2 = SpreadsheetApp.newColor()
        .setThemeColor(SpreadsheetApp.ThemeColorType.ACCENT5)
        .build();
    let color3 = SpreadsheetApp.newColor()
        .setThemeColor(SpreadsheetApp.ThemeColorType.ACCENT4)
        .build();
    let color4 = SpreadsheetApp.newColor()
        .setThemeColor(SpreadsheetApp.ThemeColorType.ACCENT3)
        .build();
    let color5 = SpreadsheetApp.newColor()
        .setThemeColor(SpreadsheetApp.ThemeColorType.ACCENT2)
        .build();
    let color6 = SpreadsheetApp.newColor()
        .setThemeColor(SpreadsheetApp.ThemeColorType.ACCENT1)
        .build();
    //変数colorを配列に格納
    const setcolor = [
      [color6,color5,color4],
      [color3,color2,color1]
    ];
    //■setBackgroundObjectsで配列のセル背景を変更
    sht.getRange(rw,cl,2,3).setBackgroundObjects(setcolor);
  //Noなら
  }else{
    //何もしない旨を掲載
    Browser.msgBox("何もしませんでした");
  }
}

setBackgroundObjects(color)のパラメーター

名前説明
colorColor[][]2 次元の色の配列。null 値により色がリセットされます。
setBackgroundObjects(color)のパラメーター

setBackgroundObjects(color)の戻り値

Range - チェーン用の範囲。

スプレッドシートで配列セル範囲の背景色を変更するまとめ

GAS×スプレッドシートで配列セル範囲の背景色を変更するならsetBackgroundObjects(color)メソッドを利用しましょう。

関連記事:【GAS】スプレッドシートでセル背景色をCSS表記で指定する

関連記事:【GAS】スプレッドシートの空白セルを判定する

関連記事:【GAS】スプレッドシートで指定した行・列のセル範囲を取得する

関連記事:【GAS】スプレッドシートの最終行を取得する

関連記事:【GAS】スプレッドシートの最終列を取得する

関連記事:【GAS】スプレッドシート内で検索を行う

-セル範囲を操作する