見出し画像

【GoogleAppsScript】forを使ったスプレッドシートの繰り返し


今回はこんなプログラムです



今回はforを使ってスプレッドシートのリストの上から順に取得していきます。

ということで、GoogleAppsScriptでforを使った繰り返しをします。


スプレッドシートのデータを順番に表示したい



A列に各値が入っているデータがあります。

このデータを順番に取得してコンソールで出力するプログラムを作成してみます。

リストのヘッダ1行目を除いて、2行目から最終行まで繰り返してデータを取得して出力します。

「リストを順番に」処理をしたいというときには、繰り返しを使っていkぃます。

forの使い方

GASで繰り返しをしたいときは、よくforを使います。

forは決まった回数だけ繰り返す!というものになります。

for(初期値;条件式;増減) {
    //繰り返す処理
}


初期値


forでは「カウント変数」という数値を扱います。

初期値では、まずカウント変数の初期値を指定します。

今回の場合、2行目から最終行まで繰り返したいのですから、カウント変数の値を2に設定

for (let i = 2 ; 条件式; 増減式) {
     //処理
}

条件式


条件式は、カウント変数がいくつになるまで繰り返しをするかを指定します。

条件式は、比較演算子を使って表現します。

例えば、今回の場合10行なので、「カウント変数が10以下の間」繰り返す。

条件式としては「i <= 10」と表現します。

for (let i = 2 ; i <= 10; 増減式) {
    //処理
}

増減式

増減式は、繰り返しのたびにカウント変数をどれだけ増減させるかを指定します

繰り返しのたびに1をプラスする!というやつです。

この記述は「i++」と簡略して書くことができます。

for (let = 2 ; i < 10 ; i++ ){
    //処理
}

これで、「カウント変数iの初期値2から10の間、1増やしながら繰り返す」というforが完成


getLastRowメソッド


最終行なのですが、行数が可変したら、そのたびに値を変えないといけません。

そんな面倒なことをするのではなく、シートの最終行を自動取得するというメソッドがあります。

getLastRowメソッドです。

こちらで、列で一番最終行まで書かれているの値が取得できます。


Sheetオブジェクト.getLastRow()

リストを順番にログ出力するスクリプト

以下を踏まえて順番にログ出力するスクリプトを作成してみます。


実行してみます


こんな形でスプレッドシートの値が次々に表示されていきます。

サンプルプログラム

function myFunction() {
  //スプレッドシートのID設定
  const spId = '[スプレッドシートID]';
  //スプレッドシートを取得
  let ss = SpreadsheetApp.openById(spId);
  // シート名取得
  sheet = ss.getSheetByName("シート1");
  // シートの最終行を取得
  const lastRow = sheet.getLastRow();

  // A列の行を順番に表示します
  for( let i = 1 ; i <= lastRow; i ++ ) {
    console.log(sheet.getRange(i,1).getValue());
  }
}

カウント変数iに行番号をあわせて、2行目からlastRow(最終行まで)出力するというものです。


行番号にカウント変数を指定するという繰り返し処理の書き方は、あちこちで使用しますので覚えておいてください。


もっとGoogleAppsScriptを学びたい人はこの本をおすすめします!




この記事が気に入ったらサポートをしてみませんか?