「計算式エラーで残業確定……」、GASで入力データのチェックツールを作成:働く価値を上げる“VBA/GAS術”(4)(3/4 ページ)
1つのGoogleスプレッドシートを複数人で共同編集するとき、想定していた形式とは違うデータを入力されると、不備が発生してしまう場合があります。そのような問題を、GASで解決するにはどうすればいいのでしょうか。
セルの背景色を変更する
続いて、背景色を変更する以下の部分です。
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'); }
実行すると以下のようにセルの背景色が変更されます。
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.
関連記事
- Excelでプログラム作成を始めるメリットとマクロの基本
プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説します。初回は、そもそもプログラミングとは何か、Visual BasicとVBAとマクロの違い、マクロの作り方、保存/削除、セキュリティ設定などについて【Windows 10、Excel 2016に対応】。 - Google Apps Scriptプログラミングでスプレッドシートを操作するための基礎知識
Googleが提供するGoogle Apps Scriptのプログラミングで、Google Apps(主にスプレッドシート)を操作する方法を解説していく連載。初回は、Google Apps Scriptやスプリプトエディタの概要、スプレッドシートを表示し、Browser.msgBoxメソッドでメッセージを表示する手順などについて解説する。 - Excelでプログラム作成を始めるメリットとマクロの基本
プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説します。初回は、そもそもプログラミングとは何か、Visual BasicとVBAとマクロの違い、マクロの作り方、保存/削除、セキュリティ設定などについて【Windows 10、Excel 2016に対応】。