Tag Archives: 便利機能

UiPathで複数ファイルをドラッグ&ドロップする方法

UiPathで複数ファイルをドラッグ&ドロップする方法 UiPathのドラッグ&ドロップについてはこちらの記事でやり方を紹介しています。 このやり方、実は妙なクセがあり、複数ファイルを選択した際はうまく動作しません。 例えばRecordingで複数ファイル選択操作を記録しようとした場合、 おそらくマウスの範囲選択で複数ファイルを指定します。 その後、どれか1つのファイルをドラッグ&ドロップで目的の場所へ移動させます。 UiPathではドラッグ&ドロップをHoverアクティビティを組み合わせることで実現していますが、 このやり方では1ファイルの時しか動作できません。 ということで、今回は複数ファイルのドラッグ&ドロップのやり方を紹介します。 1.まずキーボードでCtrlキーを押し続ける 「Type Into」アクティビティを選択してワークフローの中にドラッグアンドドロップします。 Ctrlキーなので「Send Hotkey」アクティビティと考えるかもしれませんが、 こちらは押した後に離してしまいますので、ファイルの複数選択ができません。 キーの押しっぱなしをするにはType Intoアクティビティで押しっぱなしの指定をする必要があります。 ※Type Intoの上記のような設定はこちらでも紹介しています。 まずType Intoで「”[d(ctrl)]”」と入力します。 「Indicate On Screen」を選択し、どれでもよいので選択したいファイルの1つを指定してください。   2.1ファイル目のドラッグ開始する場所(始点)で左クリックを押し続ける設定をする 「Click」アクティビティを選択してワークフローの中にドラッグアンドドロップします。 ここは1ファイルの時と変わりません。 Clickアクティビティの「Indicate On Screen」を選択し、左クリックを押し続ける対象を指定し、 Clickアクティビティのプロパティウィンドウから「Input」>「ClickType」の中にあるプルダウンメニューを開き、 メニューから「CLICK_DOWN」を選択します。ここも1ファイルの時と一緒です。 3.残りの選択したいファイルすべてに対してClickを1つずつ設定していく 先ほど行った1の手順の設定を選択したいすべてのファイル(フォルダ)ごとにそれぞれ設定していってください。 要は「CLICK_DOWN」をドラッグアンドドロップしたい全ファイルに設定してあげればOKです。 4.ドロップする場所(終点)を指定する 「Hover」アクティビティを選択してワークフローの中にドラッグアンドドロップします。 ここも1ファイルの時と変わりはありません。1回のみ設定すればよいです。 「Indicate On Screen」を選択し、「マウスをドラッグして移動させたい先」を指定します。   5.ドロップする(マウスから指を離す) 1と同じように「Click」アクティビティを選択してワークフローの中にドラッグアンドドロップします。 Clickアクティビティの「Indicate On Screen」を選択し、2で選択したものと同じ対象(終点)を指定し、 Clickアクティビティのプロパティウィンドウから「Input」>「ClickType」の中にあるプルダウンメニューを開き、 メニューから「CLICK_UP」を選択します。 なお、この時はどれか1つの設定のみで大丈夫です。 6.キーボードのCtrlキーを離す 最後にもう一つType Intoアクティビティを追加します。 「Indicate… 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超初心者向け記事まとめ ※順次追加していきます 最初に何をしたらいいか1 最初に何をしたらいいか2 BasicRecordingを使ってみよう! キーボード入力を自動でさせよう! 画像認識でクリックしよう! UiPathで簡単に座標指定クリックさせるには? 条件で処理を分岐させる

UiPathのEXCELファイル読み込み、どのアクティビティを使えばいい?

UiPathのEXCELファイル読み込み、どのアクティビティを使えばいい? これまで以下2つの記事の通り、EXCELファイルを読み込むための2つのアクティビティを紹介してきました。 範囲を読み込み(Read Range)を使う方法(ファイル全体を読みこむ) セルを読み込み(Read Cell)を使う方法(ファイルの一部を読みこむ) アクティビティの使い方を覚えるのも重要ですが、これらをどのようなときに使うべきかも重要です。 いくつかのケースを参考にしながらどちらを使うのが適切か考えてみましょう。 1.Excel型のデータテーブル TEST1 TEST2 TEST3 1 あああ 1000 2 いいい 2000 4 ええええ 4000 3 うううう 3000 上の通り、1行目に列名、2行目以降にそのデータが入っているパターンです。 これは「範囲を読み込み(Read Range)」で読み込んで、繰り返し (各行)(For Each Row)で繰り返し処理をするのが適切なことが多いかと思います。 仮に取る場所が確定している(たとえば2列目の3行目等)としても、こういった形の場合、 何行目に何が入るかというところまでちゃんと把握できていない限りは危ないでしょう。 そう言った可能性がある場合は読み込んだdatatable変数に対して、 繰り返し (各行)(For Each Row)で条件分岐をしたり、データテーブルをフィルタリング(filter data table)を使うことをお勧めします。 2.Excel型の書類 いわゆるEXCEL様式という書類のような用途で使用するEXCELファイルになります。 人間の見た目では自然なのですが、実際の中身はセル結合、空白行、空白列などがぐちゃぐちゃで、 データとしては非常に扱いずらいです。 ただし、様式として項目そのものの場所が変わることは少ないという特徴もありますので、 こういった場合はセルを読み込み(Read Cell)でセルごとに取得する方がよいでしょう。 というかそのままでは範囲を読み込み(Read Range)ではまともに取得できないと思われます。 項目が多すぎるなどで、変数をいちいち作るのがめんどくさくて範囲を読み込み(Read Range)しか使いたくないという場合は、 もう1つシートを作り、EXCELの数式でデータテーブルにすることで1行だけのテーブルとすれば、 範囲を読み込み(Read Range)でも扱うことは可能です。項目の位置が頻繁に動く場合もこういった対処が有効です。

UiPathでWord文書の文字列を置換しよう

UiPathでWord文書の文字列を置換しよう ※この記事で説明するアクティビティを利用する前にWord用のパッケージをインストールしておく必要があります。 また、当然ながらMicrosoft Wordがインストールされていないと利用できません。 UiPathではWordアクティビティを使うことで、Wordファイルから読み込んだデータの内容に検索をかけ、 ヒットした文字列を置換することができます。その簡単な使い方を覚えましょう。 1.Word アプリケーションスコープ(Word Application Scope)アクティビティを追加する。 まずWord系操作をする場合はこのアクティビティをセットし、対象となるWordファイルを決定します。 今回はなにか適当な文章が入っているファイルを選びましょう。 例としてtest.docxに以下のような文章が入っている前提で進めていきます。 これはテストです 2行目の文章 3行目の文章 2.Replace Textアクティビティを追加する。 次にWordアプリケーションスコープ(Word Application Scope)内のDoシーケンス内にテキストを置換(Replace Text)アクティビティを追加します。 左側に検索したい文字列、右側に検索した文字列を置換したい文字列にします。 例では「2行目の文章」を「4行目の文章」というように設定しています。 なお、出力(Output)プロパティの結果(Found)には検索した結果があったかどうか(Boolean型でTrue、False)が入りますが、 必須で指定する必要はありません。  

UiPathで翌営業日を取得する方法

UiPathで翌営業日を取得する方法 UiPathでは.netのメソッド等を使用することができますが、 翌営業日は.netでどうやって取ればいいのでしょうか? ましてや日本の祝日を考慮することなんてできるんでしょうか? 残念ながらそう言った便利なものはありません。 しかし、UiPathにはいろいろとほかの解決策が存在します。 例えばEXCELはワークシートで関数を使うことができるのですが、 その中にWORKDAY関数というものがあります。 これを使うことで自分で祝日マスタを作っておく必要はありますが、 日本の祝日(今後変わっても対応可能)に対応させることができます。 =WORKDAY(対象日付, 何日進めるかを指定, 祝日マスタの場所) こんな感じで指定します。 ただし、これはEXCELの話で、この関数は.netには存在しないためUiPathでは使うこともできません。 それではUiPathでEXCELの関数を使うことはできないのでしょうか? 例えばこちらの手順でUiPathからVBAを起動することが可能です。 このやり方を応用し、VBAでワークシート関数を呼び出す「WorksheetFunction」プロパティを使って、 このWORKDAY関数を利用することもできます。 今回はそういうことをせず、便利なパッケージをインストールして解決していきましょう。 まず「パッケージを管理」を開きます。 ※パッケージのインストールがよくわからない方はこの辺を参考にしてください。 左メニューからAvailable>Allと進み、検索ウィンドウで「UiPathTeam」で検索します。 するといろいろなパッケージが検索されますので、 「UiPathTeam.NextWorkingDay.Activities.Design」を選びインストールしてください。 するとアクティビティの中にUiPathTeam >「Calendar」という項目が増えます。 こちらを開くと「Get Next Working Day」と「Get Previous Working Day」というアクティビティがあります。 このアクティビティを使うことで、翌営業日と前営業日が簡単に取得できます。 設定はすべてプロパティで行います。 Input  ・Country Code:国コードを指定します。 datetime型の変数となるので、あらかじめ変数を作って入れておくか、「datetime.Parse(“対象日付”)」というように記述します。  ・Reference Date:インプットとなる日付変数を指定します。デフォルトは当日です。 このアクティビティ、なんと日本の祝日に対応しています。ここは”JP”と指定するだけです。指定なしだとエラーになります。テキストエンコードは日本完全無視仕様なのになんて親切なんでしょうか。  ・Next Working Day:次の営業日がdatetime型で出力されます それでは日本対応していることを証明するために、5月の連休で試してみましょう。 2018/5/2をターゲットにします。この5/2は水曜日の平日ですので、ここから1日進めると、 翌日から日曜日まで休みが続くので、翌営業日は5/7(月)となります。 上記画面のように設定し、出力された変数を.ToString(“yyyy/MM/dd”)してメッセージボックスに表示します。 この通り、見事に日本固有の休みでも対応できました!インストールさえすればかなり便利です。

UiPathでdatatableのデータをソートしよう!

UiPathでdatatableのデータをソートしよう! この記事で紹介しているアクティビティはUiPathのバージョンが2018.2以降でないと使用できませんのでご注意ください。 UiPathのdatatableを作るのは非常に簡単ですが、その中の値を加工するのはかなり大変です。 UiPathのバージョン2018.2からはdatatableの操作ができるアクティビティがいくつか追加されました。 その中の一つが「Sort data table」です。名前の通りデータの並び順をソートすることができます。 このアクティビティはプロパティにのみ設定項目があります。 設定も簡単で、Inputに対象となるdatatableを設定し、Outputに出力先を設定(Inputと同じでもいいです) どれを基準に並び替えるかが以下項目です。 Sorting Column ・Column:datacolumn変数(DataColumn型) ・Index:列の番号(Int型) 番号は0(一番左)や1(2番目の列)などです ・Name:列の名前(String型) 普通に使うならIndexかNameが使いやすいと思います。 最後に降順・昇順で並べ替えるかを下記で指定します。 ・Order:Ascending=昇順・Decending=降順

UiPathでdatatableの重複行を削除しよう!

UiPathでdatatableの重複行を削除しよう! この記事で紹介しているアクティビティはUiPathのバージョンが2018.2以降でないと使用できませんのでご注意ください。 EXCELなどから読み込んだデータ(datatable変数)の中に重複するデータが存在する場合、 そのデータを特定し、削除するという作業をUiPathでするのは中々大変です。 しかし、UiPathのバージョン2018.2より、「Remove Duplicate Rows」アクティビティが使えるようになり、一瞬で重複削除が可能となりました。 使い方を説明します、が、このアクティビティはInputのdatatableとOutputのdatatableを指定するだけですので、特に説明する内容がありません。あえてするなら、InとOutで同じdatatableを指定することができる、というところぐらいでしょうか。 一応例としては下記のような重複データがある場合にこのアクティビティを使用すると、 地域 順位 点数 赤 6 1000 白 2 5000 黄 1 7000 黄 1 7000 下記のような結果となります。 地域 順位 点数 赤 6 1000 白 2 5000 黄 1 7000

UiPathでデータテーブルを検索(Lookup)を使ってdatatableを検索しよう!

UiPathでデータテーブルを検索(Lookup)を使ってdatatableを検索しよう! この記事で紹介しているアクティビティはUiPathのバージョンが2018.2以降でないと使用できませんのでご注意ください。 EXCELなどから読み込んだデータの中から、特定の条件のみに該当するデータを抽出したい場合、 データテーブルを検索(Lookup data table)アクティビティを使うことができます。 ※必要なdatatableの作成までは省略します。 1.「データテーブルを検索(Lookup data table)」アクティビティを追加する。 まず「データテーブルを検索(Lookup data table)」アクティビティを追加しましょう。 アクティビティ自体に設定項目は一つもないのですが、プロパティの中に大量に設定項目があります。 ・入力(Input) -データテーブル(Datatable):対象となるdatatable変数を指定します -ルックアップ値(LookupValue):条件となる値を指定します ・検索列(Lookup Column) -列(Column):対象となるdatacolumn型の変数を指定します -列インデックス(ColumnIndex):対象となる列番号を指定します -列名(ColumnName):対象となる列の名前を指定します ・出力(Output)  -セル値(CellValue):検索対象に入っている値を格納する変数を指定します。  -行インデックス(RowIndex):対象が入っている行の番号を格納します ・ターゲット列(Target Column) -列(Column):Outputの対象となるdatacolumn型の変数を指定します -列インデックス(ColumnIndex):Outputの対象となる列番号を指定します -列名(ColumnName):Outputの対象となる列の名前を指定します (おまけ) 設定項目多すぎて覚えるのが面倒な方向けにEXCELのVlookupに合わせてやってみましょう。 例は下記テーブルです。 地域 順位 点数 赤 6 1000 白 2 5000 黄 1 7000 緑 3 3000 例えば、順位が3の人の点数(3000)を取りたい場合、 EXCELの数式ではどうするでしょうか? =VLOOKUP(“3”,B1:C5,2) というようになりますね。 これをUiPathのデータテーブルを検索(Lookup data table)で設定すると、下記の画像のようになります。… Read More »

UiPathでdatatable変数のレイアウトを作成後に変えよう

UiPathでdatatable変数のレイアウトを作成後に変えよう この記事で紹介しているアクティビティはUiPathのバージョンが2018.2以降でないと使用できませんのでご注意ください。 datatable変数はEXCELからRead Rangeで読み込んだデータやWeb Scraping Wizardで作成したWeb上のテーブルデータなど、 いろいろなデータが格納されます。この変数を作ることは簡単ですが、 列の順序を入れ替えるのはテーブルを2つ作って入れ替えるなどの作業が必要でした。 しかし、2018.2でリリースされた「Filter data table」を使うことにより、 簡単に入れ替えができるようになりました。今回はその方法を紹介します。 ※必要なdatatableの作成までは省略します。 1.「Filter data table」アクティビティを追加する。 まず「Filter data table」アクティビティを追加しましょう。 なお、InputとOutputに同じ変数を指定した場合は、Inputで指定した変数に対してフィルターがかかりますので、 今回はその方法で設定します。 2.「Filter Wizard」で「Output Columns」フィルタを使用する。 「Filter data table」アクティビティの中にあるFilter Wizardボタンを押すと、 Filter Wizardが開きます。タブが2つあり、それぞれ違うフィルタを掛けることができますが、 今回はフィルタとしてではなく列の並び替えや削除として「Output Columns」を使用します。 上のように、上から順に並び変えたいとおりに列番号、もしくは列の名前を書いていきます。 列番号は元のデータの一番左を0番目として数えていきます。数値なのでダブルクォーテーションは必要ありません。 逆に列名を指定する場合はダブルクォーテーションで囲う必要があります。 上の例では「0」「1」「2」という順番で並んでいた列を「2」「0」「1」の順に並び変えました。 また、ここで「2」「1」とだけ指定すれば、「0」を削除することもできます。 for each rowを使って移す方法もありますが、このやり方ならアクティビティひとつだけで一瞬で終わります。