チュートリアル1-4
繰り返し処理
繰り返しの処理を入れていきます。
WinGofeでは、ループ処理として
- FOR文
- WHILE文
- DO-WHILE文
があり、ループの条件はすべて継続条件(条件を満たすとき実行)です。
FOR ~ NEXT
あらかじめループ回数が決まっている場合に使用します。処理を10回繰り返す場合の書き方は、以下のようになります。
Ctrl | 入力オプション |
---|---|
FOR | カウンター:^i、開始値:1、終了値:10、STEP:1 |
(実行させたい処理) | |
NEXT |
- 最初にFORに来たときに、カウンター変数「^i」に開始値「1」が代入されます。
- FORの条件判定:カウンター「^i」が、開始値「1」から終了値「10」までの間 ⇒ TRUE
- FOR内の処理実行
- NEXTに来ると、カレント行がFORに戻ります。
- FORに戻り、カウンター「^i」にSTEPで指定した数「1」を加算 ⇒ ^i=2
- FORの条件判定 ⇒ TRUE
「^i」が10になるまで10回繰り返され、NEXTで「^i=11」となると、FOR文の条件を満たさなくなり、ループから脱出します。
WHILE ~ WEND(前判定ループ)
条件が真の間、処理を繰り返します。上記のFOR文の内容をWHILE文で表すと以下のようになります。
Ctrl | IO | TYPE | 変数 | 入力オプション |
---|---|---|---|---|
IN | NUM:SUBSTITUTE | 変数名:^i、代入式:1 | ||
WHILE | 条件:<=、変数名:^i、比較値:10 | |||
(実行させたい処理) | ||||
IN | NUM:SUBSTITUTE | [代入式:^i] | 変数名:^i、代入式:^i+1 | |
WEND |
- あらかじめ、数値変数「^i」に初期値「1」を代入します。
- WHILEでは、「^i」が10以下の間、処理を繰り返します。
- WENDまでの間に「^i」に「1」を加算しておきます。
- WENDに到達すると、WHILEに戻り、条件を判定します。
FOR文と比べると、「^i」の初期化と、「1」を加算する処理が必要です。
しかしWHILE文は、
- あらかじめループの回数が分かっていなくて、ループ内の実行結果で条件が決まるようなケース
(例:テーブルの行を順番に取り込み、最終行になったら処理を終了) - 数値以外にも複雑な条件を書くことができる
メリットがあります。
WSTART ~ DO-WHILE(後判定ループ)
条件が真の間、処理を繰り返すのはWHILE文と同じですが、最初の1回目は必ず処理を実行し、処理の最後に条件判定をします。処理を10回繰り返す場合の書き方は、以下のようになります。
Ctrl | IO | TYPE | 変数 | 入力オプション |
---|---|---|---|---|
IN | NUM:SUBSTITUTE | 変数名:^i、代入式:1 | ||
WSTART | ||||
(実行させたい処理) | ||||
IN | NUM:SUBSTITUTE | [代入式:^i] | 変数名:^i、代入式:^i+1 | |
DO-WHILE | 条件:<=、変数名:^i、比較値:11 |
- あらかじめ、数値変数「^i」に初期値「1」を代入します。
- WSTARTはそのまま通過するので、最初の1回目は必ず実行されます。
- DO-WHILEまでの間に「^i」に「1」を加算しておきます。
- DO-WHILEに到達すると、条件を判定してTRUEなら、WSTARTに戻ります。
WHILE(前判定)の場合は比較値が10でしたが、DO-WHILEでは^iに加算した後に条件判定を行うので、比較値は11となります。
無限ループに注意
例えば、次のように変数「^i」の加算処理を忘れた場合、WHILE文はいつまで経っても終了しません。
変数「^i」は「1」のままなので、WHILE文の条件を満たしたまま、永久にループすることになります。
処理が終了しなくなった場合は、操作タブのキャンセルボタンで終了してください。
正しいWHILE文
4行目に変数「^i」を加算する処理を追加します。
シナリオに繰り返し処理を追加
前回作成した操作シナリオにWHILE文を追加します。
WHILE条件
入力ExcelシートのA列にデータがある間、処理を繰り返すので、WHILE文の継続条件は
Ctrl | TYPE | 入力オプション | 列 | 行 |
---|---|---|---|---|
WHILE | CELL:CELL-VALUE | 条件:ブランクでない | A | ^row |
となります。変数「^row」は行番号を表しています。
これを3行目に追加します。
行番号の加算
変数「^row」を加算する処理を14行目に追加します。
IO | TYPE | 変数 | 入力オプション |
---|---|---|---|
IN | VarNumeric:SUBSTITUTE | 代入式:^row | 変数名:^row、代入式:^row+1 |
検索画面に戻す
1件目の操作終了時は、結果画面が表示されているので、2件目を入力できるよう、ブラウザの戻る機能で検索画面にバックします。
IO | TYPE |
---|---|
IN | Browser:BACK |
入力前クリア
戻った場合に、入力欄に前の値が残っているので、6行目のテキストボックス入力処理で、入力前にクリアするようにします。
IO | TYPE | 変数 | XPath | 入力オプション | Fixed | 入力値 |
---|---|---|---|---|---|---|
IN | TEXT | 入力値:^id | //input[@id="label-f01"] | 入力前クリア | True | ^id |
WHILE文を閉じる
WENDでWHILE文を閉じます。
Ctrl |
---|
WEND |
操作シナリオの実行
作成シナリオ
Gridシートの内容
シナリオ実行
操作タブの実行ボタンをクリック
Excelシートの件数分(3件)処理して終了します。
Excel結果
まとめ
チュートリアル1では
- Excelから値の入出力
- ブラウザの入力、操作
- 条件別の分岐(IF文)
- 繰り返し処理(WHILE)
- 変数の利用(文字型、数値型)
と、WinGofeの基本的な機能を学びました。