Home » Googleスプレッドシートの使い方 » セルの色を取得・設定するGoogle Apps Script

セルの色を取得・設定するGoogle Apps Script

対象:Googleスプレッドシート & Google Apps Script

セルの色を取得・設定するGoogle Apps Script

「google apps セルの色」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

GAS(Google Apps Script)スクリプトで、Googleスプレッドシート上のセルの色をどうにかするのに、どのようなコードを書けばいいのか探している方による検索でしょうか。

「google apps セルの色」
というキーワードだけでは、セルの色をどうしたかったのかがわかりませんので、ここではセルの塗りつぶしの色を、取得するサンプルスクリプトと、設定するサンプルスクリプトをご紹介しておきます。

[スポンサードリンク]

セルの塗りつぶし色を取得するサンプルスクリプト

以下のGASスクリプトを実行すると、アクティブなセルの塗りつぶし色の、RGB値がメッセージボックスに表示されます。

function sample_Range_getBackground(){

 var bk = SpreadsheetApp.getActiveSpreadsheet();
 var sh = bk.getActiveSheet();
 var rng = sh.getActiveCell();

 var rgb = rng.getBackground();
 Browser.msgBox(rgb);

}

RangeクラスのgetBackgroundメソッドを使うと、セルの塗りつぶし色を取得することができます。

「google apps セルの色」
という検索をされた方には、このRange.getBackgroundというメソッドを知っていただくことも大切かもしれませんが、それ以上に、どうやってこのメソッドを探したのかを憶えていただくことのほうが、より重要だと思います。

私は、GAS(というかJavaScript)で何かを取得するメソッドは、「get○○」という名前になっていることが多いということは知っていたので、色を取得するのならば、おそらく「getBackgroundColor」といった名前のメソッドが、Rangeクラスにあるのだろうと推測してRangeクラスのヘルプを眺めました。

すると「getBackgroundColor」ではなく、「getBackground」という名前のメソッドがあることがわかったので、上記のスクリプトを作ったというわけです。

セルの塗りつぶし色を設定するサンプルスクリプト

塗りつぶしを設定するほうは以下のとおりです。

function sample_Range_setBackground(){

 var bk = SpreadsheetApp.getActiveSpreadsheet();
 var sh = bk.getActiveSheet();
 var rng = sh.getActiveCell();

 var rgb = "#00ff00";
 rng.setBackground(rgb);

}

上記のGASスクリプトを実行すると、アクティブなセルの塗りつぶし色が「#00ff00」(緑色)に設定されます。

RangeクラスのsetBackgroundメソッドを使うと、セルの塗りつぶし色を設定することができます。

Range.getBackgroundをどうやって知ったのかは、以下のとおりです。

先の「getBackground」と似た話で、JavaScriptで何かを設定するメソッドは、「set○○」という名前になっていることが多いということを知っていたので、先の取得スクリプトを書いたばかりだったので、おそらく「setBackground」メソッドがあるはずと予想して、コードを入力しはじめたら、案の定、下図のように「setBackground」がヒントと表示されたので、

セルの色を取得・設定するGoogle Apps Script

作成したのが上記のスクリプトです。

もう一つセルの塗りつぶし色を設定するサンプルスクリプト

更に、上記のRange.setBackgroundを使ったスクリプトを作成するときに表示されたヒントから、RangeクラスにsetBackbroundRGBというメソッドも存在していることがわかったので、

セルの色を取得・設定するGoogle Apps Script

作ったのが、以下のスクリプトです。

function sample_Range_setBackgroundRGB(){

 var bk = SpreadsheetApp.getActiveSpreadsheet();
 var sh = bk.getActiveSheet();
 var rng = sh.getActiveCell();

 rng.setBackgroundRGB(0, 0, 255);

}

上記のGASスクリプトを実行すると、アクティブなセルの塗りつぶし色が「#0000ff」(青色)に設定できます。

[スポンサードリンク]

Home » Googleスプレッドシートの使い方 » セルの色を取得・設定するGoogle Apps Script

「Googleスプレッドシートの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.