続いて、背景色を変更する以下の部分です。
sheet.getRange(i,3).setBackground('yellow');
こちらは「i行目、3列目」のセルの背景色を「yellow」つまり黄色に変更するというものです。GASでセルの背景色を変更するには、Rangeオブジェクトに対して「setBackground()」メソッドを使います。書式はこちらです。
Rangeオブジェクト.setBackground(色)
基本的な色名であれば「white」「yellow」「red」などの英語表記の色名を文字列で指定できます。また、それ以外の色を表現したい場合はRGBの組み合わせ「#RRGGBB」で指定することも可能です。では、関数testでも実験してみましょう。
function test() { var sheet = SpreadsheetApp.getActiveSheet(); sheet.getRange(2,3).setBackground('orange'); sheet.getRange(5,4).setBackground('#6495ED'); }
実行すると以下のようにセルの背景色が変更されます。
GASでは、繰り返し処理を行う構文が幾つか用意されています。手作業では面倒な繰り返し作業も、繰り返し構文を使ってプログラミングすることで、自動で高速かつ正確に処理できるようになるのです。今回は、GASの繰り返し構文のうち、以下に挙げるfor文を使用しています。
for (初期化式; 条件式; 増減式) { //条件式がtrueの間、実行される処理 }
for文では、繰り返しの回数を記録するカウンタ変数という変数を用います。3つの式が登場しますが、それぞれ以下のような役割を持ちます。
条件式は「true」または「false」のどちらかの値を取ります。これらは真偽値といい、成立している状態をtrue、成立していない状態をfalseで表します。そして、その条件式の値がtrueの間、波括弧({})の間(forブロックといいます)の処理を繰り返し実行するというのが、for文の繰り返し処理です。
関数checkNumber内のfor文について見てみましょう。
for(var i=2;i<=6;i++){ if(!isFinite(sheet.getRange(i,3).getValue())){ sheet.getRange(i,3).setBackground('yellow'); } //省略 }
初期化式は「var i=2」、つまりiという変数を宣言して、その初期値を2に設定しています。続いて条件式は「i<=6」ですから、iの値が6以下であれば繰り返しするということです。最後に増減式は「i++」ですが、これは「i=i+1」と同義の書き方です。つまり、iの値を1ずつ増加させながら2から6まで繰り返すという意味になります。
forブロック内の処理で使われているgetRange()メソッドでは、その引数が(i,3)というように、カウンタ変数が用いられています。繰り返しのたびに、カウンタ変数が1ずつ増えていくわけですから、getRange()メソッドが参照するセルの行番号が1ずつ増えていく、という動作イメージのイメージになります。
Copyright © ITmedia, Inc. All Rights Reserved.