Googleスプレッドシートの色管理、ちゃんとやってる?「このセルの色を取得したい!」ってときに使うのが getBackground()
なんじゃ。GASを使ってスプレッドシートを自動化するなら、セルの色をプログラム的に扱うのは避けて通れんばい!
この記事では getBackground()
の基本から応用、効率的なデータ処理までをバッチリ解説するけ。知らんかった人も、これを読めばスムーズに使いこなせるようになるさ!
getBackground()メソッドの基本
getBackground()
は Range
クラスのメソッドで、セルの背景色を16進数のカラーコード(例:#ffffff
)として取得する機能じゃ。
使い方
const color = sheet.getRange("A1").getBackground();
console.log(color); // 例: "#ff0000"
このコードはA1セルの背景色を取得するんじゃけど、範囲指定(例:A1:B2
)すると左上セルの色しか取れんのじゃ[1][4]。
getBackgrounds()で複数セルの色を取得
複数セルの色を一括で取得したいなら getBackgrounds()
を使うべし!
const colors = sheet.getRange("A1:B2").getBackgrounds();
console.log(colors);
// [['#ff0000', '#00ff00'], ['#0000ff', '#ffffff']]
戻り値は二次元配列になっとるけん、各セルの色をループで処理できるさ。
大規模データの最適化テクニック
セルの色を大量に取得すると処理が重くなるばい!こういうときは、バッチ処理 や キャッシュ を活用すると効率アップじゃ!
const range = sheet.getRange("A1:Z1000");
const [values, colors] = [range.getValues(), range.getBackgrounds()];
values.forEach((row, i) => {
row.forEach((cell, j) => {
if(colors[i][j] === '#fff000') {
console.log(`セル ${i+1},${j+1} は警告色!`);
}
});
});
この方法なら、1000行以上のデータでも爆速で処理できるばい!
条件付き書式の応用
GASを使えば、標準の条件付き書式じゃできん高度な処理も可能になるんじゃ!
function highlightExpiredItems() {
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getDataRange();
const colors = range.getBackgrounds();
colors.forEach((row, i) => {
row.forEach((color, j) => {
if (color === '#ff0000') {
sheet.getRange(i+1, j+1).setBackground('#ff9999');
}
});
});
}
このスクリプトを実行すれば、特定の色を見つけて、自動でハイライトする仕組みが作れるち!
まとめ
getBackground()
を使いこなせば、Googleスプレッドシートの色情報を活用して、データを直感的に管理できるようになるばい!特に getBackgrounds()
との組み合わせは最強じゃけ、ぜひ活用してみるさ!

【GAS】スプレッドシートでセルの背景色を取得する|getBackground(s) | くろんの部屋
GAS(Google Apps Script)を用いて、スプレッドシートのセルの背景色(カラーコード)を取得するメソッドは、単一セルの場合は『getBackgroundメソッド』、範囲の場合は『getBackgroundsメソッド』です。
セルの背景色を取得する | getBackground()【GAS】 – はじりつ

【GAS】スプレッドシートの背景色機能まとめ【サンプルソース付】
GAS開発者向けにスプレッドシートの背景色機能をすべてまとめました。重要なセルの背景色を変えればデータが際立ちますね。データを目立たせたい場合はフォント色の変更よりも効果的だと思います。RGB設定(赤・緑・青)や現在の色の取得などです。交互

Class Range | Apps Script | Google for Developers
コメント