Tag Archives: キーボード入力

UiPathの動作高速化チューニング

UiPathの動作高速化チューニング ※2018.3よりUiPathがデフォルト日本語のアクティビティ名となりましたので、この記事では各アクティビティや機能名を日本語名(英語名)というように記載しています。 UiPathの動作を人に見せると帰ってくる反応のひとつとして、「もっと早く動かないの?」というのがあります。 実は十分な検証をすることができるのであれば、スピードアップにチャレンジすることもできます。 ここでは具体的にどのあたりをチューニングするかのポイントを解説していきます。 チューニングポイント1:操作系アクティビティ前後の待機時間   実はUiPathのマウス操作やキーボード操作はデフォルト設定でワンアクション(アクティビティ)ごとに、 前に0.2秒、後ろに0.3秒の、合わせて0.5秒遅延が入っています。(プロパティ>共通) 当然、これらは意味もなく入っているわけではありません。 これを短くすれば対象のアプリケーションによっては反応が追いつかなくなり、 ついにはUiPath側の動作が追い越してしまい、エラーになってしまうというリスクがあるからです。 逆に言うと十分な検証を行えば、最速で0秒の待機とすることもできます。 まずマウスクリックやキーボード操作を見ていきましょう。 こういったタイプのアクティビティには確実にプロパティで個の項目がありますので、 待機時間を前後合計0.5秒以下になるように設定していきましょう。 なお、これ以外のタイプ、例えばEXCELファイルの読み込み、 代入などのアクティビティにはこういった設定はありません。 この時にお勧めなのが、設定値を変数にすることです。 (ホントは設定ファイルでデフォルト値を一律変更できるといいんですけどね¨) これにより、デバッグモードの低速ステップのように、代入(Assign)アクティビティと組み合わせて、 一律動作速度を変更することができるようになります。 もちろん検証によってこの部分は待機無し、この部分は待機あり、 という細かいチューニングが必要な場合はこのやり方はお勧めできません。 チューニングポイント2:文字を入力(Type Into)アクティビティ 例えばファイルを保存するとき、フォームへ入力をするときなど、 文字を入力(Type Into)アクティビティでキーボードの自動入力操作が行われます。 この入力操作は大量の文字を入力することもよくあるので、 動作中の見た目は自動化しているな~というインパクトがありますが、 これが何千、何万件ともなってくると、塵も積もればで遅延の原因となります。 これを高速化するには2つの方法があります。 2-1.文字を入力(Type Into)プロパティで「入力をシミュレート」のチェックを入れる 1つ目の方法は文字を入力(Type Into)プロパティで「入力をシミュレート」のチェックを入れることです。 このチェックを入れている状態がこのアクティビティで一番早いキーボード入力をすることが可能な状態になります。 普段は人がキーボードを打っているような感じで文字が入っていくのですが、 このチェックが付いている場合は一瞬で全文字が入ります。 ※ちなみにもう一つ「ウィンドウメッセージを送信」というプロパティも入力方法を変更しますが、こちらは逆に一番遅くなります。デフォルトはどっちにもチェックが付いていません。 じゃあ全部「入力をシミュレート」だけでいいと思うかもしれませんが、 これにも一つ欠点があり対象によってはうまく動作しないことがあります。 具体的にはTabキーを押させたいときに「”k[tab]”」などの特殊な記載方法をしますが、 これがキーボードのキーとして認識されず、そのまま文字のk[tab]として打たれることがあります。 やっかいなことにちゃんと入力される部分(部品)もあれば、ちゃんとtabキーとして動作する部分もあるため、 先ほど説明した「検証が必要」という部分になります。 長文入力系処理の際にここがうまく動作すると、例えば1秒かかっていたものが0.5秒になるだけで、 遅延時間は件数×0.5秒となるわけですから、件数が多ければ多いほど見直す価値が出てくるということです。 2-2.クリップボードのコピー&ペーストで入力させる 2つ目の方法は「クリップボードに設定(Set To Clipboard)」アクティビティと、 「ホットキーを押下(send hotkey)」アクティビティを組み合わせる方法です。… Read More »

UiPathの文字を入力(TypeInto)で覚えておきたい設定

UiPathの文字を入力(TypeInto)で覚えておきたい設定 UiPathでは文字を入力(TypeInto)アクティビティを使うことで、キーボードの入力を自動化できます。非常に単純なアクティビティではありますが、うまく設定を使いこなせないと行き詰まる場面があります。今回はその回避策を紹介していきます。 1.キー入力の間隔を調整する キー入力を自動化するとはいっても、相手のアプリケーションの面倒まではなかなか見てくれません。キーの反応にすぐ対応してくれるものであればよいですが、早すぎるとメニューが開かないものなどもあります。そうしたときは下記の「キー入力間の待機時間(DelayBetweenKeys)」プロパティで、1つ1つのキー入力の間に待機(delay)を入れることができます。 何も設定しない場合は10ミリ秒、最大で1000ミリ秒が指定可能です。   2.キーを押しっぱなしにする クリック(Click)アクティビティにはドラッグアンドドロップで説明したようなマウスのボタンを押し込む、離すという設定がありました。文字を入力(TypeInto)にも全く同じ設定が可能です。これを覚えておかないと例えばCtrlキーを押しながらほかのキーをいろいろ押すという操作ができません。 ここではプロパティではなく、押したいキーの記法を覚えます。 ・k[押したいキー名] まず、横の+ボタンを押してキーを設定したときにデフォルトで設定されるものがこちらです。kは正直何の略かよくわかりません(クリックっぽいですがcではないので)これはキーを押して離すという、人間が普通にキーを押したときの処理になります。 ・d[押したいキー名] キーを押しっぱなしにする指定方法です。 ・u[押したいキー名] キーを離すときの指定方法です。 dの後には同じボタンのuが来るように記載します。※そうしないと動作終了後もずっと押したままになってしまいますので注意してください。もしそれで起動してしまっても、人間が同じキーを押せば挙動は戻ります。 3.特殊な文字で問題が出る場合 半角文字等の特殊な文字を入力させたい場合にうまく入力されない場合、下記のプロパティで入力をシミュレート(SimulateType)をオンにしてみてください。入力させる方法をUiPath上で変更することができます。 文字によっては標準の方法でうまく入力できない場合があります。これらオプションの詳しい違いについては、UiPath本家のチュートリアルムービーでも解説されていますので気になる方はそちらもご確認ください。   (おまけ)どうしても駄目なとき 入力させたい文字がどうしても入らない場合は、文字を入力(TypeInto)ではないもう一つの手段があります。それは人間のコピー&ペーストと同じ動作です。クリップボードに設定(Set To Clipboard)を使って、クリップボードにいったん入力させたい文字をセットします。次に、ホットキーを押下(Send Hotkey)アクティビティを使ってCtrl+Vを押させることで、目的の入力欄へペーストします。これにより一気に文字列が入力されるので、1文字ずつの入力間隔等で問題が発生している場合は解決が可能です。

(UiPath超初心者向け)キーボード入力を自動でさせよう!

(UiPath超初心者向け)キーボード入力を自動でさせよう! UiPathでキーボード操作を自動化させたいけど、何からやったらいいかわからない、 という超初心者の方向けにキーボード操作の自動化までを解説します。 まず、UiPathの導入については、こちらをご覧下さい。 準備ができたら次のように新しいファイルを作ります。 ワークフロー作成画面が開いたら、下記のように操作していきましょう。 1.Recordingメニューをクリック 2.Basicメニューを選択 3.Recordボタンを押す 4.キーボード入力させたい部分を左クリックする 入力欄のあるアプリケーション等の、入力部分をクリックしましょう。 下記のような入力ウィンドウが表示されます。 ※例ではメモ帳を使っています 5.入力させたい内容を入力用ウィンドウに入力 赤枠の部分に入力した文字等を入力してください。 なお、一度入力欄を空欄にしてから入力したい場合は、 下にある「Empty field」のチェックを入れてください。 6.ESCキーか右クリックを押して記録を止め、Save&Exitボタンを押す 7.アクティビティが追加されたら、Runで実行する。 このようにType Intoアクティビティが追加されれば正しく記録されています。 これで自動のキーボード入力が可能となっているので、実行してみましょう!