Google Apps Script (GAS) でこのセル範囲のセルの背景色をRGBやColorクラスで取得・設定する方法を説明します。
Rangeクラスのメソッドを利用した手順について説明します。
Google Apps Scriptの基本的な使い方については下記をご覧ください。
GASによるスプレッドシート操作の概要
GASでスプレッドシートを操作するための「SpreadSheetサービス」は、主に下記のクラスで構成されています。
クラス | 説明 |
---|---|
SpreadSheetApp | SpreadSheetサービスの親クラス |
Spreadsheet | スプレッドシートを操作するクラス |
Sheet | シートを操作するクラス |
Range | セル範囲を操作するクラス |
それぞれ下記のような位置付けになります。
「SpreadSheetApp」→「SpreadSheet」→「Sheet」→「Range」という順の階層構造になっています。操作対象に応じて、下の階層にたどってオブジェクトを取得して利用します。
このページでは、上記の中のRangeクラスの下記のメソッドについて説明します。
メソッド | 戻り値 | 説明 |
---|---|---|
getBackground() | String | このセル範囲の左上セルの背景色をRGB形式で取得する |
getBackgrounds() | String[][] | このセル範囲のセルの背景色をRGB形式の配列で一括取得する |
getBackgroundObject() | Color | このセル範囲の左上セルの背景色をColorクラスで取得する |
getBackgroundObjects() | Color[][] | このセル範囲のセルの背景色をColorクラスの配列で一括取得する |
setBackground(color) | Range | このセル範囲のセルの背景色をRGB形式等で一括設定する |
setBackgrounds(color) | Range | このセル範囲のセルの背景色をRGB形式等の配列で一括設定する |
setBackgroundObject(color) | Range | このセル範囲のセルの背景色をColorクラスで一括設定する |
setBackgroundObjects(color) | Range | このセル範囲のセルの背景色をColorクラスの配列で一括設定する |
setBackgroundRGB(red, green, blue) | Range | このセル範囲のセルの背景色をRGBの数値で一括設定する |
このセル範囲のセルの背景色を取得する
このセル範囲のセルの背景色を取得するメソッドを説明します。
このセル範囲の左上セルの背景色をRGB形式で取得する:getBackground()
このセル範囲の左上セルの背景色をRGB形式で取得する方法です。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); console.log(testRange.getBackground()); } |
下記のファイルで実行してみます。
下記のような実行結果になります。左上セルの背景色をRGB形式で取得できます。
1 |
#ff0000 |
このセル範囲のセルの背景色をRGB形式の配列で一括取得する:getBackgrounds()
このセル範囲のセルの背景色をRGB形式の配列で取得する方法です。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); console.log(testRange.getBackgrounds()); } |
下記のファイルで実行してみます。
下記のような実行結果になります。セルの背景色をRGB形式の配列で取得できます。
1 |
[ [ '#ff0000', '#0000ff' ], [ '#00ff00', '#ffff00' ] ] |
このセル範囲の左上セルの背景色をColorクラスで取得する:getBackgroundObject()
このセル範囲の左上セルの背景色をColorクラスで取得する方法です。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); console.log(testRange.getBackgroundObject().asRgbColor().asHexString()); } |
下記のファイルで実行してみます。
下記のような実行結果になります。左上セルの背景色をColorクラスで取得できます。
1 |
#ff0000 |
このセル範囲のセルの背景色をColorクラスの配列で一括取得する:getBackgroundObjects()
このセル範囲のセルの背景色をColorクラスの配列で取得する方法です。
下記のように実行します。
1 2 3 4 5 6 7 8 9 10 11 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); const testColors = testRange.getBackgroundObjects(); for (const rows of testColors) { for (const cell of rows) { console.log(cell.asRgbColor().asHexString()); } } } |
下記のファイルで実行してみます。
下記のような実行結果になります。セルの背景色をColorクラスの配列で取得できます。
1 2 3 4 |
#ff0000 #0000ff #00ff00 #ffff00 |
このセル範囲のセルの背景色を設定する
このセル範囲のセルの背景色を設定するメソッドを説明します。
このセル範囲のセルの背景色をRGB形式等で一括設定する:setBackground(color)
このセル範囲のセルの背景色をRGB形式等で一括設定する方法です。
「#ffffff」や「white」などで、色を指定できます。色をリセットしたい(デフォルトにしたい)場合は、nullを指定します。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); testRange.setBackground("#ff0000"); } |
下記のファイルで実行してみます。
下記のような実行結果になります。セルの背景色をRGB形式等で一括設定できます。
このセル範囲のセルの背景色をRGB形式等の配列で一括設定する:setBackgrounds(color)
このセル範囲のセルの背景色をRGB形式等の配列で一括設定する方法です。
「#ffffff」や「white」などで、色を指定できます。色をリセットしたい(デフォルトにしたい)場合は、nullを指定します。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); testRange.setBackgrounds([["#ff0000", "blue"], ["#00ff00", "#ffff00"]]); } |
下記のファイルで実行してみます。
下記のような実行結果になります。セルの背景色をRGB形式等の配列で一括設定できます。
このセル範囲のセルの背景色をColorクラスで一括設定する:setBackgroundObject(color)
このセル範囲のセルの背景色をColorクラスで一括設定する方法です。
下記のように実行します。
1 2 3 4 5 6 7 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); const color = SpreadsheetApp.newColor().setRgbColor("#ff0000").build(); testRange.setBackgroundObject(color); } |
下記のファイルで実行してみます。
下記のような実行結果になります。セルの背景色をColorクラスで一括設定できます。
このセル範囲のセルの背景色をColorクラスの配列で一括設定する:setBackgroundObjects(color)
このセル範囲のセルの背景色をColorクラスの配列で一括設定する方法です。
下記のように実行します。
1 2 3 4 5 6 7 8 9 10 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); const red = SpreadsheetApp.newColor().setRgbColor("#ff0000").build(); const blue = SpreadsheetApp.newColor().setRgbColor("#0000ff").build(); const green = SpreadsheetApp.newColor().setRgbColor("#00ff00").build(); const pink = SpreadsheetApp.newColor().setRgbColor("#ff00ff").build(); testRange.setBackgroundObjects([[red, blue], [green, pink]]); } |
下記のファイルで実行してみます。
下記のような実行結果になります。セルの背景色をColorクラスの配列で一括設定できます。
このセル範囲のセルの背景色をRGBの数値で一括設定する:setBackgroundRGB(red, green, blue)
このセル範囲のセルの背景色をRGBの数値で一括設定する方法です。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const testSheet = testSpreadSheet.getSheetByName("シート1"); const testRange = testSheet.getRange("B2:C3"); testRange.setBackgroundRGB(255, 0, 0); } |
下記のファイルで実行してみます。
下記のような実行結果になります。セルの背景色をRGBの数値で一括設定できます。
まとめ
Google Apps Script (GAS) でこのセル範囲のセルの背景色をRGBやColorクラスで取得・設定する方法を説明しました。
GASは無料で利用できてとても便利なツールです。
Googleスプレッドシート等のGoogleアプリケーションを利用されている方は、GASを習得することで作業を大きく効率化できます。
GASの基本構文を知りたい方は、下記もご覧ください。