Category Archives: 便利機能

UiPathの便利機能です

UiPathでフォルダのサイズを取得する方法

UiPathでフォルダのサイズを取得する方法 ※2018.3よりUiPathがデフォルト日本語のアクティビティ名となりましたので、この記事では各アクティビティや機能名を日本語名(英語名)というように記載しています。 UiPathには様々なアクティビティがありますが、意外と存在しないものもあります。 代表的なものは年月日系の取得、ファイルの名前を取得するなどですが、 これらは.netの方法がそのまま使えますので大して難しくありません。 しかし、フォルダのサイズに関しては1発で取る方法が見つからないと思います。 ここではUiPathでどうやってフォルダサイズを取得すればよいかを解説していきます。 1.フォルダのサイズそのものは取得できない いきなり核心です。なんとそんなものは存在しません。 では結局どうすればよいのでしょうか。答えは… フォルダの中にあるファイルのサイズを一つずつ調べて、全部足す です。嘘じゃないです。.netでは本当にこれしかないんです。 .netでファイルサイズを取得するにはnewだの何だのと、いったいそんなのどこから出てきたんですか、 という内容となり、ほぼほぼ.netの話になるのでここでは解説しません。 専門的なサイトのほうでしっかり解説されていますのでそちらをご覧ください。 .netなんて極力勉強したくない!じゃあ、どうすればいいか、 フォルダのプロパティを開いてそこからテキストを取得する です。これならいくらサブフォルダがあろうが隠しファイルがあろうが関係ありません。 これぞUiPathならでは、プログラム解らない人でも安心といった取り方です。 やりかたはただテキストを取得(Get Text)アクティビティでプロパティから取ってくるだけです。 プロパティウィンドウなのでループしなくても勝手にWindowsが計算してくれます。 ただ、この方法の弱点は見ての通り余計な情報が多いことです。 xxx KB(xxxx,xxxxバイト)のような感じで、例えばほしいのが()の中のバイトサイズだったら、 数字だけ加工して取ってくるのが面倒です。サイズによって文字数も変わりますし、 こんなのループして条件分岐なんてしてたらnewしたほうがよっぽどマシです。 そんなときは下記のように置換(replace)アクティビティと正規表現を使います。 上で.netがどうこういいながら正規表現というのも大概ですが¨ 言語に関係なく使えるので、いきなりnewよりはましでしょう。 まず1つ目の置換(replace)アクティビティのプロパティのパターンの部分に、 “.*\((.*) バイト\)”と入力し、置換の入力欄に”$1″と何も考えずに入れれば、括弧の中の数字だけ取得できます。 2つ目の置換で,(カンマ)を””に変換して、削除します。もしかしたら1回でもできるかもしれません。 なお、入力と結果には同じ変数を指定できます。 (※上記はWindows7や8の場合で確認しました) 正規表現を使うと死んでしまう人は、もっと別のやり方を考えましょう。 例えばコマンドプロンプトを立ち上げてCDコマンドを使って目的のフォルダまで移動し、 Dirコマンドを打ってもサイズは取得することができると思います。(もちろんテキスト成型は必要でしょうが¨) ダイレクトにサイズ、というのは取れませんが、UiPathはなんにでもアクセスできることを考えてみれば、 実は取る方法がたくさんあります。

UiPathとOutlookでメールの自動送信を実現する方法

UiPathとOutlookでメールの自動送信を実現する方法 ※2018.3よりUiPathがデフォルト日本語のアクティビティ名となりましたので、この記事では各アクティビティや機能名を日本語名(英語名)というように記載しています。 また、Outlook関連アクティビティはUiPathのバージョンが2018.3以降ではない場合、別途パッケージのインストールが必要ですのでご注意ください。 1.準備 まず以下を準備する必要があります。 ・アカウント設定済みでメールが受信可能な状態のOutlookが起動している (Outlookアクティビティはシナリオを動作させるとき、仕様上、必ずOutlookを起動していないと正しく動作しません) Outlookは当然必要です。持っていない場合はPOP3などほかのアクティビティを使ってください。 次にOutlookのアカウント設定をしてメールが送信できる状態にしてください。 2.Outlookメールメッセージを送信(Send Outlook Mail Message)アクティビティを追加 準備ができましたので、さっそくUiPathで処理を作っていきます。 まず、「Outlookメールメッセージを取得(Send Outlook Mail Message)」アクティビティを追加します。 このアクティビティでは3つの項目が設定できます。まず宛先(To:)、件名(Subject)、本文(body)です。 次にプロパティを見ていきましょう。 ここではアカウント情報(Outlookに複数のアカウント設定がある場合は必須です)、送信者の名前、CC,BCCなどが設定できます。 また、添付ファイルなども設定することができます。このほか、HTML形式にするかどうかもチェック(HTML本文)で指定します。 3.宛先、件名、本文を指定して送信 もっとも単純なメール送信をする場合を解説します。 この場合はアクティビティのボックスに必要事項を文字列で入力するだけとなります。 たとえば [email protected]のような宛先に、「test」という件名で、「これはテストです」という内容の文章を送る場合、 以下のような形となります。基本的にこれだけでOKです。 おまけ1.CC、BCCを指定して送信 CCやBCCはプロパティで以下の様に設定します。 おまけ2.複数の宛先を指定して送信 TO、CC、BCCを複数にしたい場合は以下の様に記述します。 ※下記例は[email protected][email protected][email protected]をToに設定する場合です。 “[email protected];[email protected];[email protected]” 見ていただけると分かりますが、Outlookとまったく一緒です。CCやBCCでも同様の記載方法で複数設定が可能です。 おまけ3.添付ファイルを添付して送信 アクティビティの下部にある「ファイル添付」を押すと、 下記のように何をすればいいのかわからない非常に雑なウィンドウが開きます。 説明の手抜きっぷりが半端ないですが、ここではファイルの格納先を指定します。 例えばC:\test.jpgというファイルを送付したい場合は、以下のように指定します。 2つ目以降も「引数の作成」を押せば追加できます。 もちろんこの「C:\test.jpg」の部分をString型の変数にすれば可変にできます。 注意点として、この設定の仕方の場合は必ずファイルをつけないとエラーになってしまうので注意してください。 また、添付ファイルの数を可変にしたい場合はあらかじめコレクションを作成しておく必要があります。

UiPathでOutlookを使ってメール受信+作業自動化を実現する方法

UiPathでOutlookを使ってメール受信+作業自動化を実現する方法 ※2018.3よりUiPathがデフォルト日本語のアクティビティ名となりましたので、この記事では各アクティビティや機能名を日本語名(英語名)というように記載しています。 また、Outlook関連アクティビティはUiPathのバージョンが2018.3以降ではない場合、別途パッケージのインストールが必要ですのでご注意ください。 UiPathではOutlookによるメール受信・送信を自動化する機能があります。 今回はメール受信をトリガーとした次の作業への自動化手順を解説していきます。 1.準備 まず以下を準備する必要があります。 ・アカウント設定済みでメールが受信可能な状態のOutlookが起動している (Outlookアクティビティはシナリオを動作させるとき、仕様上、必ずOutlookを起動していないと正しく動作しません) Outlookは当然必要です。持っていない場合はPOP3などほかのアクティビティを使ってください。 次にOutlookのアカウント設定をしてメールが受信できる状態にしてください。 2.Outlookメールメッセージを取得(Get Outlook Mail Messages)アクティビティを追加 準備ができましたので、さっそくUiPathで処理を作っていきます。 まず、「Outlookメールメッセージを取得(Get Outlook Mail Messages)」アクティビティを追加します。 次に下記画像の通り、「メールフォルダー」でメールが入るフォルダの名前を文字列で指定します。 ※アカウントはオプション設定ですので、1つしか設定していない場合は空白でOKです。 メールフォルダーはデフォルトでは”Inbox”となっていますが、これは英語版の「受信トレイ」にあたるもので、 残念ながら日本語のOutlookでは動作しません。今回は「受信トレイ」で設定してみましょう。 ※もし、受信トレイの階層より下にあるフォルダにアクセスした場合は\(¥)でWindowsのフォルダを指定するように指定してください。 例えば受信トレイの下にある「情報」という名前のフォルダであれば、「受信トレイ\情報」となります。 ここで取得したメールの情報は出力プロパティのメッセージで指定した変数に入ります。 変数は入力欄でCtrl+Kもしくは右クリックメニューで作成して指定しましょう。 また、「最上部」というプロパティで上から何件目まで取得するかを指定する必要があります。 デフォルトだと30件で、何もいれないと動作しません。もし全部取りたいときは「Int32.Maxvalue」と入れましょう。 ※件数については最後のおまけも参照してください。 3.取得したメッセージを繰り返し(コレクションの各要素)アクティビティで処理する UiPathは簡単に情報を取る部品は揃っているのですが、それを次にどうすればいいかは全く教えてくれないので、 プログラムの知識がないとなかなか扱うのが大変です。 通常、データは取ってきただけではだめで、それを処理する必要があります。 先ほどのアクティビティは対象となるメッセージを一気に全部取ってくるものです。 そのため、「繰り返し(コレクションの各要素)」(For each)アクティビティを使ってそれを1つずつ処理していく必要があります。 先ほどのメッセージ取得アクティビティの後ろに「繰り返し(コレクションの各要素)」(For each)アクティビティを追加しましょう。 さらにその中のBodyにメッセージボックス(message box)アクティビティを入れておいてください。 次に「繰り返し(コレクションの各要素)」のプロパティに注目してください。 「繰り返し(コレクションの各要素)」(For each)アクティビティは繰り返す対象となる変数の型を指定してあげる必要があります。 Outlookで取ってきたものは「Mailmessage」型を指定してあげないといけません。 そうしないと下記のようなエラーが出ます。 (このアクティビティの時はこれ以外エラーになるので、正直人間がこれを選ぶ意味がまったくないと思います。 自動化と銘打つならMailmessage型が指定されたらそれぐらいUiPath側で判別してほしいのですが¨) 設定するにはまずプロパティのTypeArgumentを選び、右のプルダウン(Objectになっているところ)を押します。 次に検索ボックスで「mailmessage」と検索します。 同じ名前が複数出てきますが、一番目の「System.Net.Mail」の中にある方を選びます。 これで1件ずつ処理する準備が整いました。 4.取得したメッセージのほしい情報を選ぶ 最後にメールの中のどの情報を操作するか選ぶ方法を覚えましょう。… Read More »

UiPathで簡単にEXCELの全シート名を取得する方法

UiPathで簡単にEXCELの全シート名を取得する方法 ※2018.3よりUiPathがデフォルト日本語のアクティビティ名となりましたので、この記事では各アクティビティや機能名を日本語名(英語名)というように記載しています。 以前のバージョンのUiPathではEXCELブック内にあるシート名を取得したいとき、 .netのメソッドを使ったりすることで取得することができましが、 これはプログラム初心者には、難易度の高い作業でした。 しかし新しく日本語化されたEXCELアクティビティを使えば、 こんな作業もアクティビティだけで解決できます。 1.Excelアプリケーションスコープ(EXCEL Application Scope)アクティビティを追加する まずEXCEL系操作をする場合はこのアクティビティをセットし、対象となるEXCELファイルを決定します。 今回は5つのシート(あ・い・う・え・お)が入ったファイルを使います。 2.「ワークブックの全シートを取得」(Get Workbook Sheets)アクティビティを追加する 次に「実行」の中へワークブックの全シートを取得」(Get Workbook Sheets)アクティビティを追加します。 日本語だとズバリそのままの名前ですね。 3.「ワークブックの全シートを取得」(Get Workbook Sheets)プロパティで出力先の変数を指定する 「ワークブックの全シートを取得」(Get Workbook Sheets)アクティビティのプロパティに出力(output)がありますので、 そこの全シートのところに今回はCtrl+K(もしくは右クリックメニュー)で変数を作成しましょう。ここに必要な変数はList型なのでこの作り方が楽です。 今回はtestという名前の変数を指定しました。 4.出力用変数のスコープを変更する UiPathのよくある落とし穴、変数のスコープです。ここも何も考えずに作ると、Excelアプリケーションスコープ内の「実行」シーケンスでのみ使える変数になってしまいます。 変数タブから変数一覧を開き、先ほど作ったtestのスコープを「実行」からシーケンス(=シナリオ全体)に変更しましょう。 5.出力用変数を処理するための、繰り返し(コレクションの各要素)(For Each)アクティビティを追加する Excelアプリケーションスコープ(EXCEL Application Scope)の下に、繰り返し(コレクションの各要素)(For Each)アクティビティを追加しましょう。 アクティビティの名前が文章に近い感じでわかりづらいですが、これで複数の要素(=シート名が複数入っている)の変数を繰り返し一つずつ処理できます。 6.itemの格納元に先ほど作ったtest変数を指定する アクティビティの設定欄に先ほど出力先として指定したtest変数を指定します。 7.itemの中身を文字列にしてメッセージボックス(message box)に出力させる ちゃんとシート名が取れたかをメッセージボックスで確認しましょう。item変数は初期設定だとString型ではないので、.toStringを忘れずに 以上でシート名が全部取れました。これを応用して条件分岐の条件にすれば、複数シートを持っているブックから指定したシート名だけを処理したりなんてことも楽勝です。

UiPathでパスワード付きのExcelを開く方法

UiPathでパスワード付きのExcelを開く方法 ※2018.3よりUiPathがデフォルト日本語のアクティビティ名となりましたので、この記事では各アクティビティや機能名を日本語名(英語名)というように記載しています。 EXCELで業務を自動化する際に引っかかりやすい点としてEXCEL自体にパスワードがかかっているパターンがあります。 UiPathではこういったパスワード付きのファイルについてもあらかじめパスワードを設定しておくことで、 開くことが可能です。以下で、パスワード付ファイルの設定方法を紹介していきます。 1.読み取り専用パスワードの場合 はじめにExcelファイルを指定するため、Excelアプリケーションスコープ(Excel Application Scope)アクティビティを追加します。 ここで、プロパティの下画像「パスワード(Password)」部分にEXCELに設定している「読み取り専用パスワード」を入力すると、読み取り用パスワード入力をせずそのまま開くことができます。 2.書き込みパスワードの場合 上記と同様、Excelファイルを指定するため、Excelアプリケーションスコープ(Excel Application Scope)アクティビティを追加します。 ここで、プロパティの下画像「編集用パスワード(EditPassword)」部分にEXCELに設定している「書き込みパスワード」を入力すると、書き込みパスワード入力をせずそのまま開くことができます。

UiPathでWordファイルをPDFファイルに変換しよう

UiPathでWordファイルをPDFファイルに変換しよう ※この記事で説明するアクティビティを利用する前にWord用のパッケージをインストールしておく必要があります。 また、当然ながらMicrosoft Wordがインストールされていないと利用できません。 UiPathではWord専用アクティビティを使うことで、簡単にWordファイルをPDFへ変換することができます。 以下でそのやり方を紹介します。 1.「Word Application Scope」アクティビティを追加する 「Word Application Scope」アクティビティを選択してワークフローの中にドラッグアンドドロップします。 Wordの処理を行う際はまずこれを追加します。   2.「Word Application Scope」のDoの中に「Export to PDF」アクティビティを追加する   Export to PDFの中にはPDFに変換した際のファイル名を付けます。以上で完了です。 ※複数ファイルへの応用編はこちら。    

UiPathでアプリケーションを最大化・最小化する方法

UiPathでアプリケーションを最大化・最小化する方法 UiPathで自分だけが使うワークフローを作るときには、環境差異などという面倒なことを考える必要がありません。 ただ、それを他の人に渡すと動いていたはずのワークフローが動かなくなってしまいます。 特に色がちょっと変わるだけでも動かなくなる画像認識機能などはその例として有名ですが、 意外に気をつけないといけないのがアプリケーションのウィンドウサイズです。 もし仮に最大化した状態で作っていた場合、相手に渡す時に「アプリケーションを最大化しないと動かないよ」、 と伝え忘れてしまうと、それだけで動かない可能性があるわけです。 いやいや、Selectorでアプリをマウスクリックしているから大丈夫なんて思っても設定次第では動かなかったりします。 確認するための一番よい方法は、作った後で自分でサイズを変更して実行してみることですが、 今回はウィンドウサイズを変えるアクティビティで対処してみましょう。ついでに反対の最小化も紹介します。 1.Attach Window(Browser)アクティビティを追加する 「Indicate On Screen」を選択し、最大・最小化したいアプリケーションを指定してください。 2.Attach Window(Browser)アクティビティの中にあるDoの中へ、 Maximize(Minimize) Windowを追加する こちらは設定不要で放り込むだけでOKです。 たったこれだけでお手軽最大化&最小化が可能です。 (おまけ) もし何らかの事情で上の手が使えない場合、もう一つの手があります。 それはSend HotkeyアクティビティでWindowsキー+カーソルの上キーを押す(最大化の時)。 というやり方です。このやり方でも最大化は可能ですが、 注意点としてすでに最大時しているものに対して同じことをすると、 Selectorが見つからずエラーになる可能性があります。 うまくSelectorや判定で設定してあげてください。 一方、上のアクティビティは最大化していようが最小化していようが、 どの状態に何回やっても問題はありません。

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超初心者向け記事まとめ

UiPath超初心者向け記事まとめ ※順次追加していきます 最初に何をしたらいいか1 最初に何をしたらいいか2 BasicRecordingを使ってみよう! キーボード入力を自動でさせよう! 画像認識でクリックしよう! UiPathで簡単に座標指定クリックさせるには? 条件で処理を分岐させる

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

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