Googleスプレッドシートでは「Google App Script」を使用してスクリプトを組むことができますが、GASの「for文」の使い方をご存知でしょうか?この記事では、スプレッドシートでGASのforを使って繰り返しを行う方法をご紹介していきます。
スプレッドシートでGASのforを使って繰り返しを行う方法
それでは、スプレッドシートでGASのforを使って繰り返しを行う方法について説明していきます。例として、200行ほど用意したリストを順番に処理するためにforを使って繰り返しを行ってみましょう。まずは、for文の記述について説明します。for文の記述は、下記の通りとなります。
for(初期化式; 条件式; 増減式) { // 繰り返す処理 }
波括弧で囲んでいる部分を「forブロック」と呼びます。forブロックの中に記述されている処理を特定のルールで繰り返すわけですが、各種処理について説明していきます。
まずは「初期化式」です。for文では、「カウント変数」という整数値を扱う変数を活用します。カウント用変数は「i」・「j」といった変数が用いられます。初期化式においては、最初にこのカウント変数の初期値の指定を行います。例である200行のリストのうち、1行目はヘッダーとしているためここでは2行目を指定します。つまり、カウント変数の値は2になりますね。
for(let i = 2; 条件式; 増減式) { //処理 }
続いて、「条件式」を説明します。条件式とは、カウント変数がいくつになるまで繰り返すのかを指定する式です。条件式は、比較演算子で表現します。例であるリストは200行となるので、「カウント変数の値は200以下の間」繰り返すため条件式は「i<=200」となります。
for(let i = 2; i <= 239; 増減式) { //処理 }
最後は「増減式」の説明です。増減式とは、繰り返しのたびにカウント変数の増減を指定する式です。今回は、繰り返しのたびに1をプラスするように設定します。この記述は「i++」と簡略したものを使用することができます。
for(let i = 2; i <= 239; i++) { //処理 }
これで、カウント変数iの初期値2から200以下の間、1を増やしながら繰り返すfor文を作成することができました。
ちなみに、200行用意したリストにデータを追加して更新があった場合には最終値を変更しなければなりません。この最終値をわざわざ手動で入力せずとも、自動で取得するための「getLastRowメソッド」を入力すると便利ですよ。
Sheetオブジェクト.getLastRow()
ということで、200行用意したリストを順番に出力するスクリプトを組むとこのような形になります。for文は応用で使えるようになると便利なので、ぜひいろいろ試してみてくださいね。
function myFunction() { const sheet = SpreadsheetApp.getActiveSheet(); const lastRow = sheet.getLastRow(); for(let i = 2; i <= lastRow; i++) { console.log(sheet.getRange(i, 1).getValue()); } }