GAS「ねこあつめ」の行の範囲を取得する

この記事では、GAS(Google APP Script)でデータがある範囲を求めます。
お世話になった記事は 【初心者向けGAS】スプレッドシートのセル範囲を行数・列数を使って取得する です。

←GAS自作サンプルへ戻る

このスプレッドシートには、「ねこあつめ」の「おともだち」の情報が載っています。
右端の列は、一番下の「とらきち」の所だけ空欄になっています。

実行して、名前「とらきち」を出力し、「TRUE」にして、セル範囲の「D2:D5」(右端列2行目〜右端列5行目)を取得します。

(行,列,範囲)の引数(括弧の文字の計算に必要となる材料)は、(2行目,4列目,最終行の行数から1つ引いた分)に
なっています。

2行目・・・1行目はタイトルのため
4列目・・・右端の列
最終行から1を引く・・・タイトルの行の分を引く

「getA1Notation」で行範囲を取得

コードはこちらです。

実行結果です。

セルの範囲が取り出せました。

スプレッドシートを確認します。

これで、「とらきち」が出力され、セル範囲を取得し、最後のTRUEが入りました。

←GAS自作サンプルへ戻る

GAS「ねこあつめ」ループに制御を加えて一つずつ出力する

この記事では、GAS(Google APP Script)でループに制御を加えて1つずつ出力する方法を学びます。
お世話になった記事は【初心者向けGAS】条件に応じてループを制御する2つの方法~break文とwhile文~ です。

←GAS自作サンプルへ戻る

このスプレッドシートには、「ねこあつめ」の「おともだち」の情報が載っています。

一番右の列で、TRUEが入っていない空欄の「ねこともだち」のお名前を出力したいのですが、一気に出力するのではなく、1つ1つ出力するよう、ループに制御をかけていきます。

制御をしないで実行した場合です。

コードと実行結果です。

TRUEが入っている「サビガー」以外の全ての猫ちゃんたちが出力されました。

TRUEが入っていないセルを1つ1つ出力する方法を今回学びますので、一旦スプレッドシートを実行前に戻します。

最後に「break」を追加して、IF文のところで空白セルを出力した後にループを抜けます。

コードです。

実行結果です。

「ヘキサにゃん」が出力され、1件処理できました。

これを続けると、

2件目完了

3件目、最後まで終了

と、動作を確認できました。

また、breakを使わず、whileループを使う方法もあります。

一旦スプレッドシートを最初の状態に戻します。

トレースしてみると、

初期値i=2(1行目はタイトルなので)にして、
2行目の右端列には何も入っていない(空白)なのでループを抜ける、
左端の「猫ともだち」のお名前が出力される、と言う結果になります。

コードです。

実行してみます。


Whileの注意点は
・初期値を書き忘れないこと(4行目のi=2)
・無限ループに気をつけること(7行めのi++)

です。
これもトレースしてみます。
i=2で「ヘキサにゃん」を出力した後、再度実行した場合をトレースします。
I=2は右端の列に値が入っているからi=3と加算してループに戻る。
I=3は空白だからループを抜けて「みっけ」を出力し、i=3の右端の列に値「TRUE」を入れます。

ここでプログラムは終わります。

再度実行します。

i=2は右端列にTRUEが入っているので、iを加算してi=3にしてループに戻る
i=3は右端列にTRUEが入っているので、iを加算してi=4にしてループに戻る
i=4は右端列にTRUEが入っているので、iを加算してi=5にしてループに戻る
i=5は右端列が空白なので、ループを抜けて「とらきち」を出力してi=5の右端に「TRUE」を入れます。

これは、iが加算される行(7行目のi++)があるから処理が進んで空白があったらループを抜けます。
しかし、iが加算されなかったら再び同じ行を見ることになって、ループを抜けられなくなって無限ループになります。

なので、

「初期値を設定」
「ループの変数を加算」

この2つは非常に大事です。
私は初期値の設定を忘れてエラーを出してしまいましたので、気をつけます。

←GAS自作サンプルへ戻る

GAS「ねこあつめ」出力したセルに処理済み「TRUE」を入力する

この記事では、GAS(Google APP Script)で出力したセルに「True」を設定する方法を学びます。
お世話になった記事は【初心者向けGAS】スプレッドシートのセルに値を入力する基礎の基礎 です。

←GAS自作サンプルへ戻る

このスプレッドシートには、「ねこあつめ」の「おともだち」の情報が載っています。

赤枠で囲ってある、一番右側の列にTRUEと入っていない未完了分の「ねこあつめ」の「おともだち」の名前を出力して、処理済み「TRUE」を設定します。

実行結果です。

今回処理したセルが処理済みになり、「TRUE」と入りました。

<3>

←GAS自作サンプルへ戻る