繰り返し回数のカウント
この記事では、ループ内で繰り返し回数(ループ数)を取得する方法について紹介します。
【できるようになること】
- Loopで繰り返し回数を取得する
- ForEachで繰り返し回数を取得する
- 取得した繰り返し回数
取得した繰り返し回数は、取得した時点における繰り返しが何回目かによって変動します。
Loopであれば、繰り返し1回目に取得した繰り返し回数は0、繰り返し2回目に取得した繰り返し回数は1となります。
このような繰り返し回数は、以下のように利用できます。
・スプレッドシートの書き込み開始行数
・一定回数以上繰り返さないようにするための条件式
・実行ログに詳細を残す
Loopで繰り返し回数取得方法
ForEachでの繰り返し回数取得方法
ForEachで繰り返し回数を取得するためには、「繰り返し回数を格納する変数名(withIndex)」に任意の変数名を設定する必要があります。
この変数の値は、上述のLoopの${i}と全く同じ振る舞いをします。
よって、ForEach内部で繰り返し回数を取得する際には、ForEach内部のアクションのパラメータに${withIndexに指定した変数名}
と記述します。
# 各要素について繰り返す +for_each_1: for_each>: name: ["太郎","次郎","三郎"] withIndex: index _do: # テキストを作成 +text_1: action>: Text text: ${index}
繰り返し回数に任意の数値を加算する
繰り返し中に取得される回数は、上述の通り、Loop/ForEachの両方で、初回が0、2回目が1といった具合で固定されています。
これらの繰り返し回数に任意の数を加算したい場合、${iまたはwithIndexに指定した変数名 + 任意の半角数字}
とすると数値を加算できます。
例えば、スプレッドシートに繰り返しで書き込みをする際に、A2セルから書き込みを開始させる場合、
書き込む範囲にシート名!A${i+2}
と設定しておくと
1回目はA2、2回目はA3と指定範囲をカウントアップすることが可能です。
※Loopで変数iに2を加算する例
# 繰り返し +loop_1: loop>: 10 _do: # テキストを作成 +text_1: action>: Text text: ${i + 2}
応用:繰り返し用変数を個別に用意する
Loopの変数iと、ForEachのwithIndexパラメータ以外の変数に、繰り返し回数の役割を持たせることも可能です。
この方法では、繰り返し回数を格納する変数の初期値に0以外の値を指定できることに加え、繰り返し1回ごとに加算する数値も柔軟に調整できます。
方法は、以下になります。
- ForEach範囲内の適切な位置に「StoreValue」アクションを設定します。
※ほとんどの場合、ForEachの一番最後です。 - 変数名には、1.で設定した変数名と同じ名前を設定します。
- 値には
、${parseInt(変数名) + 1}
と設定します。