Docly Child

繰り返し(ForEach)

3217 views

この記事では、ForEachによる繰り返し(各要素について繰り返す)について説明します。

【できるようになること】

  • リストをもとにして繰り返しを行う
ForEachを利用する場面

以下のようなリスト/配列/二次元配列を処理する際に使用します。

・スプレッドシートのx行目からy行目までの情報を1行ごとに処理
・スクレイピングした情報を1つずつ順に処理
・CSVを1行ごとに処理

 リスト指定の繰り返し設定

AUTOROの繰り返し設定にはLoopとForEachの2つの設定を用意しています。「ForEach(各要素について繰り返す)」の設定では、対象のリストについて1要素ずつ繰り返し処理を行うことができます。
(詳細は後述の「ForEachの仕組みを理解」にて)

 ForEachを利用したワークフロー

下記のようなリストに対してForEachが有効です。

  • スプレッドシート/エクセルから取得したリストでループ
  • スクレイピングしたデータに対してループ

このような情報を処理するために、ForEachの仕組みを紹介します。

「繰り返すリスト(iterable)」に設定されたリストから、要素を1つずつ取り出して「要素を格納する変数(element)」に格納します。
処理が完了すると自動的に変数の値を次の要素に書き換えを行います。

※上記(二次元配列)の例では、格納された要素が配列 [“名前”, “挨拶文”] となっています。
そのため、1列目(名前)のみを取得する場合は、ForEach内部で${row[0]}と記述します。
二次元配列についての詳細は、こちらをご参照ください。

FoeEachでは、「繰り返し回数を格納する変数名(withIndex)」を設定することにより、現在の繰り返し回数を取得することが可能です。 繰り返し回数は、ForEach範囲内のアクションで${繰り返し回数を格納する変数名}とすることによって取得できます。 withIndexの値は、繰り返し1回目では0,繰り返し2回目では1といった具合で、1ずつ加算されます。
iterable(繰り返すリスト) = [“太郎”,”次郎”,”三郎”]
繰り返し回数 element(要素を格納する変数名)の値 withIndex(繰り返し回数を格納する変数名)の値
1回目 太郎 0
2回目 次郎 1
3回目 三郎 2

以下記事にて、ForEachを利用したワークフローの例を紹介しています。

冒頭の画像のワークフローの実行結果です。

# 各要素について繰り返す
+for_each_1:
  for_each>:
    name: ["太郎","次郎","三郎"]
    withIndex: index
  _do:

    # テキストを作成
    +text_1:
      action>: Text
      text: "${name}\n${index}"
<ForEach>各要素を繰り返す

このページは役に立ちましたか?