GASの繰り返しループ処理方法まとめ!forやwhileによる反復方法を紹介

Google Apps Script(GAS)では、プログラミングの基本となる「繰り返し」のループが用意されています。

GASで利用できるfor文やwhile文などの反復処理について、それぞれの使い分けを含めて紹介します。

GASで繰り返し処理は必須

Google Apps Script(GAS)で処理の自動化を行うスクリプトにおいて、繰り返し処理は必須です。

GASではスプレッドシートにあるデータを読み込んだり、APIからデータを取得します。

スプレッドシートやAPIのデータは単体ではなく、多いと数百程度の複数データであることが多いです。

個々のデータを処理・加工する際に、GASスクリプトに繰り返し処理を記述することで、コードの記述量を少なくすることができます。

GASを使った効率化処理を実装するには、繰り返し処理は不可欠と言えます。

GASの繰り返しループ処理は6種類

Google Apps Script(GAS)で使える繰り返しのループ処理は大きく6種類ほどあります。

  1. for文
  2. for of文
  3. for in文
  4. forEachメソッド
  5. while文
  6. do while文

それぞれ繰り返し処理の記述方法や処理フローが微妙に異なっています。

繰り返し処理の条件によって、どれを選択するか判断できるようになると、GASのプログラミング能力がアップします。

決まった回数を繰り返す基本的なforループ

繰り返し処理の1つで最もよく利用されるループ処理がfor文です。

Google Apps Script(GAS)でも、for文による繰り返し処理はもちろん利用でき、スプレッドシートのデータ処理によく用いられます。

for文は以下のようにで変数の初期化と繰り返し条件、増減式を記述します。

for(初期化式; 条件式; 増減式){
  //条件式がtrueの間、実行する処理を記述

}

for文による繰り返し処理については以下の記事で解説しています。

GASのfor文の繰り返しループ処理とbreak、continueの使い分けを解説

変数を初期化した後、条件式がtrueの場合に処理を実行し、処理終了時に増減式を実行し、ループします。

初期化式から条件式と増減式で決められた回数だけ繰り返したい場合にfor文が便利です。

for文から派生したfor ofやfor in、forEach

for文から派生した繰り返し処理としてfor…of文、for…in文、forEachメソッドの3つがあります。

①for…of文

for(変数 of 配列){
  //配列の要素数だけ繰り返し、毎回変数に配列値を格納
  //for ofループで実行する処理を記述

}

配列にある値を全て処理したい場合に、for of文を用います。

for文の場合、lengthプロパティで配列の要素数を取得して条件式を設定しますが、for of文ではそうした記述が必要なく、シンプルに配列の処理が記述可能です。

②for…in文

2つ目のfor…in文は以下の形で利用するループ処理です。

for(変数 in オブジェクト){
  //オブジェクトの要素数だけ繰り返し、毎回変数にキー値を格納
  //for inループで実行する処理を記述

}

for in文は順不同でデータの要素を取り出すため、配列処理には適していません。

そんとあめ、オブジェクトのキー(プロパティ)を取得してオブジェクトの値を使った処理したい場合に、for in文を用います。

③forEachメソッド

3つ目のforEachメソッドは配列のメソッドとして実行する繰り返し処理です。

Array.forEach(function(変数){
  //配列からひとつずつ要素を取得して変数に格納
  //forEachループで実行する処理を記述

});

for ofやfor inは構文として実行していましたが、forEachはArray型の配列変数のメソッドとして実行します。

for文の派生形の繰り返し処理であるfor of文、for in文、forEachメソッドについては以下の記事で解説しています。

【GAS】for文の派生for ofとfor in、forEachの処理と違いを解説

forEachメソッドは近年利用しないユーザーが増えているため、配列の場合はfor of、オブジェクト(連想配列)の場合はfor inといった使い分けを行います。

条件を満たす間、処理を繰り返すwhile文

さきほどまではfor文を基本とした、for文の派生系の繰り返し処理を紹介してきました。

for型の繰り返し処理に加えて、Google Apps Script(GAS)で用いられるループ処理として、while文があります。

while文も繰り返し処理の基本となるループで、プログラミング入門書などにも必ず記述されています。

while文は以下の形で繰り返し条件と繰り返し処理を記述します。

while(条件式){
  //条件式がtrueの場合、処理を実行

  }
//条件式がfalseになった時、whileループ終了

while文の条件式がtrueの間、中括弧{}内に書かれた処理を実行し、falseになったところでループが終了します。

while文の条件式の判定が初回でもfalseだった場合はwhile内の処理は1回も実行されません。

while文による繰り返し処理については以下の記事で解説しています。

GASのwhile文の使い方解説!条件式がtrueの間くり返し処理し、無限ループに注意

while文は繰り返し処理の中に不備があると、繰り返し処理が終わらない無限ループに陥ることがあるので注意が必要です。

whileと類似したdo whileループ

while文と似たループ処理として、do while文もGoogle Apps Script(GAS)では利用可能です。

do whileループはwhileループと似ているものの、記述方法は少し異なります。

do{
  //処理を実行

  }while(条件式);
//条件式がtrueなら繰り返し処理実行、falseならdo whileループ終了

whileループの時は条件式→繰り返し処理の順番でしたが、do whileループは逆の繰り返し処理→条件式となっています。

そのため、while文では初回でも条件式がfalseなら処理が実行されないこともありますが、do while文は必ず1回は実行されます。

こうしたdo while文の処理の流れやwhile文との違いについては以下の記事で解説しています。

GASのdo while文の使い方!whileとの違いである後置判定ループ処理を解説

do while文をGASで使うケースはあまり少ないですが、少なくとも1回は処理を実行したい場合にはwhile文よりもスッキリとコードを書くことができます。

まとめ・終わりに

今回、Google Apps Script(GAS)で使用する繰り返し処理についてまとめてみました。

GASの繰り返しループとして、主なfor文、for of、for in、forEachメソッドと、while文、do while文の6種類を紹介しています。

それぞれ繰り返し方法がすべて同じではなく、微妙に異なっています。

for文やwhile文といった繰り返し処理の基本的なループだけでも、ほとんどの繰り返し処理が実行できます。

しかし、for of文やfor in文、do while文を使いこなすことで、よりスッキリと分かりやすいコードになります。

各ループ処理については個別の記事でも詳しく解説しているので、そちらを併せて参照しながら、ぜひ、GASの繰り返し処理をマスターしましょう。