Quantcast
Channel: いつも隣にITのお仕事
Viewing all articles
Browse latest Browse all 2076

【初心者向けGAS】 for文を使ったスプレッドシートの繰り返しの超基本

$
0
0

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

初心者向けGoogle Apps Script超入門ということで、Botの作成を目指しながらGASプログラミングの基本を学んでいきます。

前回の記事はこちら。

【初心者向けGAS】スプレッドシートのセル・セル範囲とその値を取得する方法
初心者向けにBotづくりを目指してGoogle Apps Scriptプログラミングの基礎をシリーズでお伝えしています。今回は、Rangeオブジェクト、つまりセルやセル範囲とその値を取得する方法です。

スプレッドシートのセル範囲とその値を取得する方法についてお伝えしました。

これまでは、正直あんまりBotっぽさをお伝えできていなかったのですが、今回から徐々に近づいていきますよ。

まず、今回はfor文を使って、スプレッドシートのリストの上から順に取得して表示をしていく方法について伝えします。

ということで、Google Apps Scriptでfor文を使った繰り返しの超基本についてです。

では行ってみましょう!

今回のお題:名言を順番に表示したい

まず、題材としているスプレッドシートはこちらです。

スプレッドシートの名言リスト

珠玉の名言の数々がリストされています。

Botなので、何らかの法則で、いずれかの名言を取得してチャットワークなり、Slackなりに通知したいということなのですが、まずは簡単なところから上から順に行ってみます。

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

さて、そんな「リストを順番に」処理したいというときには、繰り返しと言われる種類の処理を使います。

for文の使い方

GASで繰り返しをしたいとき、よく使われるのはfor文です。

for文は決まった回数だけ繰り返すときに適していまして、以下のように書きます。

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

波括弧で囲われた部分をforブロックといい、この中の処理を何らかのルールで繰り返すのですが…ちょっと意味分かんないですかね。

一つずつ説明していきます。

初期化式

まず、for文では「カウント変数」という整数値を扱う変数が活躍します。

カウント用変数はよくiやjという変数が用いられます。

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

今回の場合、2行目から最終行まで繰り返しをしたいわけですから、カウント変数の値を2に設定しておくとよいということになります。

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

条件式

次に条件式について説明します。

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

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

例えば、今回の場合は195行目までなので、「カウント変数の値が195以下の間」繰り返す、つまり条件式としては「i <= 195」と表現します。

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

増減式

最後に増減式です。

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

よく使うのは、「繰り返しのたびに1をプラスする」です。

四角四面に書いたら「i = i + 1」なのですが、この記述は「i++」と簡略して書くことができます。

つまり、以下のように書くことができます。

for(var i = 2; i <= 195; i++) {
 //処理
}

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

getLastRowメソッドで最終行数を求める

最終行数なのですが「195」が一生変わらないのであればいいのですが、名言が増えた場合、最終値を変更しなければなりませんね。

そのような手間がないように、シートの最終行数を自動で取得する便利なメソッドがあります。

getLastRowメソッドです。

Sheetオブジェクト.getLastRow()

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

以上を踏まえて、名言リストを順番にログ出力するスクリプトを作成しました。

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var lastRow = sheet.getLastRow();
  for(var i = 2; i <= lastRow; i++) {
    Logger.log(sheet.getRange(i, 1).getValue());
  }
}

実行すると、以下のようにログ出力されます。

GASでfor文を使ってスプレッドシートのリストを順番にログ出力

まとめ

以上、Google Apps Scriptでfor文を使った繰り返し文の超基本についてお伝えしました。

for文は一見複雑そうですが、カウント変数の役割や各式の意味をきちんと理解していればそれほど難しい構文ではありませんね。

また、getLastRowメソッドは便利に使えますので、ぜひ使えるようにしておいてください。

次回は、if文による条件分岐についてお伝えします。

連載目次:超初心者向けGASでBotを作りながら基礎を学ぶ

Google Apps Script(GAS)をはじめるためのメリットは山程ありますが、何を作ったらいいの?と悩んでしまうこともありますよね。そんな時に、おすすめしたいのが「Bot」の作成です。このシリーズでは、超初心者向けにGASでBotを作る方法を題材としながら、GASプログラミングの一通りの流れと書き方について学んでいきます。
  1. 【初心者向けGAS】本当の最初の一歩!スクリプトエディタでプロジェクトを開く
  2. 【初心者向けGAS】はじめてのスクリプトを作成し、保存し、実行する
  3. 【初心者向けGAS】プログラミングに必須の変数の使い方とデータ型について
  4. 【初心者向けGAS】ログを表示するLogger.logの使い方
  5. 【初心者向けGAS】スクリプト実行時の「承認」でびっくりしないために
  6. 【初心者向けGAS】Spreadsheetサービスの「オブジェクト」の基礎の基礎を知ろう
  7. 【初心者向けGAS】スプレッドシートのシートを取得する2つの方法
  8. 【初心者向けGAS】スプレッドシートのセル・セル範囲とその値を取得する方法
  9. 【初心者向けGAS】 for文を使ったスプレッドシートの繰り返しの超基本

Viewing all articles
Browse latest Browse all 2076

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>