「google apps セルの色」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
GAS(Google Apps Script)スクリプトで、Googleスプレッドシート上のセルの色をどうにかするのに、どのようなコードを書けばいいのか探している方による検索でしょうか。
「google apps セルの色」
というキーワードだけでは、セルの色をどうしたかったのかがわかりませんので、ここではセルの塗りつぶしの色を、取得するサンプルスクリプトと、設定するサンプルスクリプトをご紹介しておきます。
セルの塗りつぶし色を取得するサンプルスクリプト
以下のGASスクリプトを実行すると、アクティブなセルの塗りつぶし色の、RGB値がメッセージボックスに表示されます。
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」という名前のメソッドがあることがわかったので、上記のスクリプトを作ったというわけです。
セルの塗りつぶし色を設定するサンプルスクリプト
塗りつぶしを設定するほうは以下のとおりです。
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」がヒントと表示されたので、
作成したのが上記のスクリプトです。
もう一つセルの塗りつぶし色を設定するサンプルスクリプト
更に、上記のRange.setBackgroundを使ったスクリプトを作成するときに表示されたヒントから、RangeクラスにsetBackbroundRGBというメソッドも存在していることがわかったので、
作ったのが、以下のスクリプトです。
var bk = SpreadsheetApp.getActiveSpreadsheet();
var sh = bk.getActiveSheet();
var rng = sh.getActiveCell();
rng.setBackgroundRGB(0, 0, 255);
}上記のGASスクリプトを実行すると、アクティブなセルの塗りつぶし色が「#0000ff」(青色)に設定できます。
Home » Googleスプレッドシートの使い方 » セルの色を取得・設定するGoogle Apps Script