アクションの概要説明

今回は、「For each」のアクションを説明していきます。データを変えながらループ処理するアクションです。
「LOOP」処理とどちらが使いやすいかは?使って確認してみてね?
「For each」を使用する場合、下記のようにアクションを開いてみましょう。
アクションの位置

アクションの展開はアクション名をダブルクリックするか、フロー画面へのドラッグで可能です。
アクション設定画面

反復処理を行う値には、リスト、データテーブル変数を設定します。
アクション動作の確認(List変数の場合)
以下のフローでアクションの設定と、動作を確認してみましょう。
For eachのアクションを設定すると以下の赤枠ようなアクションが配置されます。
これは、For eachとEndの間のアクションを繰り返し実行することを示します。
今回「メッセージを表示する」アクションをテストとして配置しています。
これでデータの量に応じて、繰り返しの回数のメッセージが表示されることになります。

リストを用いてデータの処理状態を確認してみましょう
今回テストデータとして、フローの1行目にList変数を設定しています。Listには、「りんご」、「みかん」、「ぶどう」、「なし」の順序でデータが入力されています。

これを実行するとどのような動作をするでしょうか?実行してみると以下の表示されます。
ちなみに各ループのFor eachで読み出しだデータは「保存先:」のCurrentItem変数に保存されるのでこのCurrentItemを「メッセージを表示」するように設定しています。

「りんご」が表示されましたね。これは最初のListのデータである、「リンゴ」がCurrentItem変数に読みだされたことを示します。

メッセージを表示には、OKを押すと次のアクションを動作できるように設定しています。
この状態で何度かOKを押してみましょう。
以下の順序で表示されましたね。
これはは、List変数に入っていた、データが上から順番に読みだされたことを示します。
この後に、もう一度押すとアクションが停止したと思います。これはすべてのデータを読み終えたので、For eachアクションが終了しループを抜けています。



これが、基本的なFor eachアクションとなります。
Listに入っているデータ量を気にせずに、リストの内容を全部読みだすまで繰り返すのがこのアクションの基本的な動作です。「Loop」アクションは、繰り返す回数を指定する必要があるので、このあたりが使用用途によって使い分けになると思います。
アクション動作の確認(Datatable変数の場合)
ではDatatable変数では、どんな動作になるのでしょう?
それでは以下のようなDatatable変数を用意しました。これでList変数と同様の方法で読みだしてみましょう。


以下の表示なりましたね。

CurrentItemの中身はこのようになっていますので、Datarow変数(データ行)として取り出されています。

先ほどは左のイラストの変数指定で読みだしていますが、たとえば「青森」のデータを取り出したい場合は、右のイラストのような変数指定をすれば・・・


データテーブルの4列目だけ取り出せましたね。(一番左の列は0のため)
このことからFor eachでDetatableから読みだすと、Datarow形式で読み出しがされ、その中から場所指定でデータを読み出せることがわかりました。

Robo1号の感想

List全部を読み出して処理することは多そうなのでこの「For each」は繰り返しの中で一番使いやすいかもしれないね。