Forguncy 10 オンラインヘルプ
アプリの開発 / ロジックの実装 / コマンド / コマンド(通常) / 繰り返し
このトピックで
    繰り返し
    このトピックで

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

    プロパティ 説明

    コマンド未設定

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

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

    指定した回数を指定するか、配列型の変数を指定して繰り返す場合に選択します。

    0以下の回数を指定した場合、サブコマンドは実行されません。

    配列型の変数は、たとえば[変数の設定]コマンドを使用してデータベースから複数レコードを取得するというケースが挙げられます。

    たとえば上記のような「ArrayData」は配列型の変数となります。この場合、[繰り返し配列オブジェクト名]が既定の「Item」であれば、後続のサブコマンド内では「=Item.ProductName」という表現で「ProductName」フィールドの値を取り出すことができます。

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

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

    すべての行

    ここではリストビューに表示されているフィールド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の場合、サブコマンド「セルプロパティの参照」は次のようになります。

    • 繰り返し回数は3回です。

    • 「=$B$1」は絶対参照のため、3回とも「B1」には「bb」が入ります。

    • 「C2」については、1回目は「C2」に「aa」が入ります。

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

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

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


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