GASでスプレッドシートで配列セル範囲の背景色を変更するには「setBackgroundObjects(color)
」を利用する。
setBackgroundObjects(color)
背景色の長方形のグリッドを設定します(この範囲のディメンションと一致させる必要があります)。
https://developers.google.com/apps-script/reference/spreadsheet/range#setbackgroundobjectscolor
スプレッドシートで配列セル範囲の背景色を変更するGAS実行の様子
setBackgroundObjects(color)メソッドを利用して、スプレッドシートで配列セル範囲の背景色を変更するGASを実行してみました。
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)のパラメーター
名前 | 型 | 説明 |
---|---|---|
color | Color[][] | 2 次元の色の配列。null 値により色がリセットされます。 |
setBackgroundObjects(color)の戻り値
Range - チェーン用の範囲。
スプレッドシートで配列セル範囲の背景色を変更するまとめ
GAS×スプレッドシートで配列セル範囲の背景色を変更するならsetBackgroundObjects(color)
メソッドを利用しましょう。
関連記事:【GAS】スプレッドシートでセル背景色をCSS表記で指定する
関連記事:【GAS】スプレッドシートで指定した行・列のセル範囲を取得する
関連記事:【GAS】スプレッドシート内で検索を行う