Forguncyマニュアル
繰り返し
Forguncyの使い方 > コマンド > コマンド(通常) > 繰り返し

コマンドを繰り返し実行します。繰り返しのルールは、回数の指定、リストビューの行数分、セル範囲の指定から選択できます。

コマンド未設定

繰り返しコマンドの対象となるサブコマンド(繰り返し内で実行されるコマンドを指します)を設定します。

指定した回数分だけ繰り返し処理を行う

指定した回数分だけ繰り返す場合に選択し、回数を指定します。

0以下の数字を指定すると、Webブラウザーでコマンドは実行されません。

リストビューの行数に基づいて繰り返し処理を行う

リストビューの行数分だけ繰り返す場合に選択し、対象リストビューを指定します。

すべての行

ここではリストビューに表示されているフィールド1の値を、「テーブル2」テーブルの「フィールド2」フィールドへ繰り返しコマンドとテーブルデータの更新コマンドを使って追加する処理を例に説明します。

サブコマンドで、リストビューの行テンプレート内のセルを参照している場合、1回目のサブコマンド実行時には参照先のリストビュー列の1行目の値が取得され、2回目には2行目の値が取得されます。繰り返しコマンドは次の図のリストビューを繰り返す対象としており、サブコマンド「テーブルデータの更新」で、リストビューの行テンプレートのE3を参照しています。

繰り返し対象のリストビュー:リストビューの行数が3行なので、繰り返す回数は3回です。サブコマンドにおけるセル参照は3行分繰り返して値が取得されます。

サブコマンドの「テーブルデータの更新コマンド」により値(レコード)が追加された「テーブル2」の結果:対象のリストビューのフィールド1の値が3行分追加されます。

サブコマンドの処理によって対象のリストビューの行数が変化するような場合、それにより繰り返す回数も変化することに注意してください。

選択行

リストビューのスタイル設定により、繰り返し処理を行う対象は以下のように変化します。
  • リストビューに「行ヘッダー」を表示している場合、行ヘッダークリックによって選択している行
  • リストビューに「選択列」を表示している場合、行選択チェックボックスによる選択で選択されている行
  • 上記どちらも表示していない場合、カレントレコード

ここではリストビューに表示されているフィールド1の値を、「テーブル2」テーブルの「フィールド2」フィールドへ繰り返しコマンドとテーブルデータの更新コマンドを使って追加する処理を例に説明します。

サブコマンドで、リストビューの行テンプレート内のセルを参照している場合、1回目のサブコマンド実行時には参照先のリストビュー列の1個目の選択行の値が取得され、2回目には2個目の選択行の値が取得されます。繰り返しコマンドが次の図のリストビューを繰り返す対象としており、サブコマンド「テーブルデータの更新」で、リストビューの行テンプレートのE3を参照しています。

繰り返し対象のリストビュー:リストビューの選択行数は2行なので、セル参照が2行分(1行目と3行目)繰り返し実行されて値が追加されます。

サブコマンドの「テーブルデータの更新コマンド」により値(レコード)が追加された「テーブル2」の結果:対象のリストビューの選択された2行分のフィールド1の値が追加されます。

セル範囲に基づいて繰り返し処理を行う

指定したセル範囲で繰り返す場合に選択し、セル範囲を指定します。

<セル範囲の指定方法>

いくつかのセル範囲の指定方法があります。

=B2,B4,B6

複数のセルをカンマ区切りで指定します。

セル結合されているセルを指定する場合は、結合元のセルを指定します。

上記の例では「B3」「B5」「B7」は結合されているセルのため、「=B2,B4,B6」と指定します。

=B2:B7

指定するセル範囲をコロンを使って指定します。

=B2,B4:B7

カンマ区切りとセル範囲指定の組み合わせでも、指定できます。

=cell1,cell2,cell3

セルの名前を指定します。

 


ヒント: 「セル範囲に基づいて繰り返し処理を行う」を指定した場合、コマンドパラメータにより参照されるセルやセル範囲は、コマンド実行ごとに、繰り返しコマンドで指定したセルとの位置関係で決定されます。
たとえば、繰り返しコマンドで指定したセルがB2,B4,B6の場合、サブコマンド「セルプロパティの参照」は次のようになります。

2回目は、「B4」が1回目の「B2」と比較され、「C2」に「+2」されて「C4」に「aa」が入ります。

3回目は「B2」と「B6」が比較され、「C2」に「+4」されて「C6」に「aa」が入ります。

上記を実行する際、「C2」、「B2」の各セルのセル型を、テキスト型など任意のセル型に指定しておいてください。


注意: コマンドパラメータがリストビューの行テンプレート内のセルを参照している場合、絶対参照を使用してください。絶対参照を使用しないと、何度かコマンドを繰り返した後、リストビュー内の選択した値を取得できなくなります。