横方向の繰り返しと座標位置指定(ドラッグ&ドロップ)

いつも勉強させていただいています。
今回は2点質問させてください。

  1. 横方向の繰り返し
    For Each Rowの列バージョンのようなことはできるのでしょうか?
    下記のようなスプレッドシートを読み取り、あるシステムへ社員番号毎にA、B、Cというようなコードを入力していきます。
    今作成しているシナリオだと、表全体を読み取ったデータテーブルを社員番号を処理させるためFor Each Rowで繰り返し、その中にFor Eachを入れて、列名の配列{D,E,F,G….O}と初期値=3としたcount変数を使って、”D3” “E3” ”F3” ”G3”…と横方向に読み取り、コードの有無で判断させています。

ただこのやり方だと恐ろしく時間がかかってしまい、For Eachを使わずに一度表を読み取って横方向に繰り返しができたらと考えているのですが、何か方法はないでしょうか?

2.ドラッグ&ドロップの座標位置指定について
Citrixのものを画像認識を駆使して自動化しています。
コードを入力する際にドラッグ&ドロップを使用するのですが、座標位置を固定で指定しているのに、時間が経つとずれてエラーになることがあります。
途中までは上手くいっているのに、突然違うところにドロップしたり、昨日は問題なかったのに別日にはずれていたり。
修正しても何度もずれるので修正しても無意味な気がしてしまいます。
これを回避する方法はありますか?

※Citrix環境で要素認識できる拡張機能がありますが、会社に受け入れてもらえず、画像認識でトライしています。
また、入力に際しドラッグ&ドロップ以外の方法はありません。
1、2とも同じシナリオの質問です。

長文失礼しました。よろしくお願いいたします。

こんにちは

DataTable.Columns でDataColumnCollectionが返りますので、これをイテレートすれば良いかと思います。具体的には例えば以下になるかと思います。

1 Like

Yoichiさん、いつもありがとうございます。
試しにサンプルを作成してみたところ上手く列の繰り返しができました!これで本番用も作成し直したいと思います。
ありがとうございました。

また、大変おこがましいのですが、質問2(座標位置指定)については何かご存知のことはございますでしょうか?
何か方法があればご教示いただけますと幸いです。

こんにちは

異なるテーマはトピックを分けた方がベターかもしれません。

現在どのようにドラッグ&ドロップをしていますでしょうか?
ドラッグ&ドロップアクティビティでしょうか?

Yoichiさん

そうですね、配慮が足らず失礼いたしました。
恐れ入りますが、このままこちらで質問させていただきます。

ドラッグ&ドロップアクティビティではなく、クリック(click down)→ホバー→クリック(click up)で処理しています。
ひとつ目のクリックで座標指定をし、ホバーと2つ目のクリックは座標は指定していません。
(何度かテストした結果その方法が1番長く動いたので。)

こんにちは

ドラッグ&ドロップアクティビティ使えるならこちらの方が良いと思いますが、いかがでしょうか?

ひとつ目のクリックで座標指定をし、ホバーと2つ目のクリックは座標は指定していません。

Hoverでドロップ側の要素に移動させているということでしょうか?
CursorMotinoType(カーソルの動きの種類)はSmoothになっていますでしょうか?
またドラッグ側でもHoverを入れると安定するケースもあります。

Yoichiさん

お返事が遅くなりすみません。

ドラッグ&ドロップアクティビティを使いたいのですが検索しても出てきません。
インストールが必要でしょうか?
使用バージョン等は以下です。
UiPath Studio:2022.4.4
UiPath.UIAutomation.Activities:22.10.4

Citrix環境のものを画像認識で処理したく、画像をクリックを使用しているため、CursorMotionTypeは選択できずでした。

ドロップ側、ドラック側両方にホバーを入れてみると安定する可能性があるとのこと、ご教示ありがとうございます。
試してみます!

こんにちは

ドラッグ&ドロップアクティビティを使いたいのですが検索しても出てきません。

プロジェクト設定で、モダンデザインエクスペリエンスをONにするか、アクティビティパネルのフィルターでモダンを表示をONにしてみてください

Yoichiさん

早速のご教示ありがとうございます!
ドラッグ&ドロップアクティビティ出てきました。
こちらも使ってみたいと思います。

こちら返事もれていました。
FindImageで対象のUiElementを取得しておいて、通常のクリックやホバーアクティビティでこれを指定すればCursorMotionTypeを指定できると思います。

Yoichiさん

漏れのないご教示恐れ入ります。
FindImage、ノーマルクリックを使用してみたところCursorMotionTypeを選択でき、さらにスムーズにドラッグ&ドロップできました!
本当にありがとうございます!

※ちなみにドラッグ&ドロップアクティビティはリモートランタイムをインストールしていないため、使用できませんでした。

あとは、時間が経ったり別日に稼働させても問題通り動くことを祈ります。

長々とした質問にお付き合いいただきありがとうございました。
また疑問が出てきましたらぜひ質問させてください。
ありがとうございました!

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.