GASでスプレッドシートの背景色を自在に操る完全ガイド
GASでスプレッドシートの背景色を変える方法が知りたいんだけど、どうにも難しくて…。
猫男
catman
安心するんだ。catmanがGASを使ってスプレッドシートの背景色を自在に操る方法を教えるさ。
GASでスプレッドシートの背景色を変更する基本
GASでスプレッドシートの背景色を変えるには、SpreadsheetAppとRangeを使います。
最初に、スプレッドシートを取得する必要があります。
function setBackgroundColor() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange('A1').setBackground('yellow');
}
このスクリプトを実行すると、アクティブなシートのA1セルの背景色が黄色に変わります。
SpreadsheetApp.getActiveSpreadsheet()はスプレッドシートを取得し、getActiveSheet()で現在のシートを選びます。
GASで特定の範囲の背景色を変える
スプレッドシートの特定の範囲に背景色を設定したい場合は、次の方法を使います。
function setRangeBackgroundColor() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange('B2:C3');
range.setBackground('pink');
}
sheet.getRange(‘B2:C3’)で指定された範囲の背景色をピンクに設定します。
背景色を条件付きで変える
たとえば、セルの値によって背景色を変えることもできます。
function setConditionalColor() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange('A1:C3');
var values = range.getValues();
for (var i = 0; i < values.length; i++) {
for (var j = 0; j < values[i].length; j++) {
if (values[i][j] > 10) {
range.getCell(i+1, j+1).setBackground('green');
} else {
range.getCell(i+1, j+1).setBackground('red');
}
}
}
}
このスクリプトは、指定された範囲内のセルの値が10より大きい場合に緑色、それ以外の場合は赤色に背景を変えます。
背景色をリセットする方法
一度設定した背景色をリセットする方法も知っておくと便利です。
function resetBackgroundColor() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange('A1:C3').setBackground(null);
}
setBackground(null)を使うことで、指定範囲の背景色をデフォルト状態に戻せます。
GAS実践練習問題
以下の条件に基づいてGASスクリプトを書いてください。
- スプレッドシートの’A1:F10’のセルを対象にする。
- セルの値が5以下の場合は背景色を青にする。
- セルの値が6以上の場合は背景色をオレンジにする。
練習問題の解答・解説
function practiceBackgroundColor() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange('A1:F10');
var values = range.getValues();
for (var i = 0; i < values.length; i++) {
for (var j = 0; j < values[i].length; j++) {
if (values[i][j] <= 5) {
range.getCell(i+1, j+1).setBackground('blue');
} else {
range.getCell(i+1, j+1).setBackground('orange');
}
}
}
}
このスクリプトは’A1:F10’範囲の各セルを調べ、条件に応じて背景色を設定します。getValues()でセルの現在の値を取得し、ループで各セルを評価してsetBackground()メソッドで色を設定しています。
背景色を変えるスクリプト、簡単そうに見えて奥が深いね!
猫男
catman
そうだろう。これでスプレッドシートのカスタマイズがもっと楽しくなるはずさ!