「計算式エラーで残業確定……」、GASで入力データのチェックツールを作成働く価値を上げる“VBA/GAS術”(4)(3/4 ページ)

» 2017年10月18日 05時00分 公開
[高橋宣成プランノーツ]

セルの背景色を変更する

 続いて、背景色を変更する以下の部分です。

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');
}

 実行すると以下のようにセルの背景色が変更されます。

図4 GASでセルの背景色を変更する

for文で繰り返しを行う

 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.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。