はじめに
・UiPath使用歴:約7ヶ月ぐらい
UiPath関係の記事を見てた時に「あれ、もしかしてこの機能って知られてない?」って思う事がちょいちょいあったので
備忘録もかねて残しておきます
WriteCellによる新規シート作成
「Excelで任意の名称をつけた新規シートを作成したい」っていう場面は結構あると思います。
公式のアクティビティガイドにも載ってますが、
存在しないシートに対して書き込み処理を行うと、勝手に新規シートを作ってくれます。
https://activities.uipath.com/lang-ja/docs/write-cell
サンプル_新規シートを作る
注意点としては、新規で作成されるシートは
既存シートの左側に作成されます
なので以下のように連続でシートを作成すると、左に向かって増えていきます。
実際に作る時は右に向かって増えるレイアウトが多いと思うので
作った後に「移動またはコピー」(Alt+E M)を使って、末尾に移動させる処理を組みこむと良い感じになります。
On Element Appearを使った待機処理
いわゆるウィンドウなどが表示されるまで待ってくれるのがこのアクティビティです。
設定値をうまく変える事で、上書き保存ダイアログなど、特定条件の場合に表示される項目についても
良い感じに対応できるようになります。
サンプル_メモ帳の表示を待つ
RepeatForever
Trueの場合、On Element Appear内に配置したアクティビティを「ずっと」繰り返します。
表示の待機など、一発限りの場合は必ずFalseにしてください。そうしないとロボットがこのアクティビティで止まります。
(むしろTrueで使う場面が全くないけど、何故かデフォルト値がTrueという謎仕様)
WaitActivate
要素がアクティブになるまで待機させるかのオプションになります。
アクティブにならないと操作を受けつけない、っていう場合にこれを付けておくといい感じで待ってくれます。
WaitVisible
要素が「画面上に」表示されるまで待機させるかのオプションになります。
意外と重要で、上記のメモ帳の例だと
このオプションのチェック無しだと最小化状態でも存在している扱いになったりします。
そして最大の注意点として、ウィンドウの下部が隠れている場合は非表示扱いになります。
なので以下のような状態だと、そのままTimeOutが起きます。
サンプル_不特定に表示されるウィンドウへの対応
ContinueOnErrorオプションを活用する事で、
表示されるかどうか分からないウィンドウにも対応できます。
ContinueOnErrorをTrueにしておくと、
非表示の場合はTimeOut値を超えた場合、そのまま次処理に行ってくれます。
「いちいちElementExistsで判定してIFで分岐させるのが面倒……」っていう時に活躍してくれます。
最後に
とりあえず今後も適当にネタが出来たら書いていこうと思います。
ちょっとでも誰かの助けになれば嬉しいです。