Category Archives: 日本語版

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がデフォルト日本語のアクティビティ名となりましたので、この記事では各アクティビティや機能名を日本語名(英語名)というように記載しています。 今回はEXCELの所定セルに自動で色を塗る作業を自動化していきましょう。 以前のバージョンではこういった作業に対応するアクティビティはなく、 一々EXCEL上で右クリック>セルの書式というように操作を記録させる必要がありました。 しかし、2018.3から追加された「範囲の色を設定(Set Range Color)」アクティビティを使うことで、 そう言った操作を行わずとも直接セルの色を変更することが可能になりました。 1.Excelアプリケーションスコープ(EXCEL Application Scope)アクティビティを追加する まずEXCEL系操作をする場合はこのアクティビティをセットし、対象となるEXCELファイルを決定します。 今回はSheet1に対して操作を行っていきます。 2.範囲の色を設定(Set Range Color)アクティビティを追加する 実行シーケンス内に範囲の色を設定(Set Range Color)アクティビティを追加します。 3.範囲の色を設定(Set Range Color)のプロパティでシート名とセル範囲を指定する 範囲の色を設定(Set Range Color)アクティビティを選択し、プロパティウィンドウでシート名(例だとSheet1)、セル範囲(A1:A2等)を指定します。 4.範囲の色を設定(Set Range Color)のプロパティで設定したい色を指定する 範囲の色を設定(Set Range Color)アクティビティを選択し、プロパティウィンドウで色を指定します。 ここで注意点として、設定はColor型のオブジェクトでしか行うことができません。 具体的には「color.」と入力欄に入力すると、下記のように候補が表示されます。 赤色なら「color.red」、緑色なら「color.green」、青色なら「color.blue」というような感じで指定すればOKです。 例としてcolor.greenを指定した実行結果が以下になります。 ※今あるセルの色を取りたい、という人はこちらを参考にしてください。      

UiPathでEXCELの特定セルの色を取得する

UiPathでEXCELの特定セルの色を取得する ※2018.3よりUiPathがデフォルト日本語のアクティビティ名となりましたので、この記事では各アクティビティや機能名を日本語名(英語名)というように記載しています。 今回はEXCELの所定セルの色を取得する方法を解説します。 これを使って取得した色は「範囲の色を設定(Set Range Color)」アクティビティ等で利用することができます。 1.Excelアプリケーションスコープ(EXCEL Application Scope)アクティビティを追加する まずEXCEL系操作をする場合はこのアクティビティをセットし、対象となるEXCELファイルを決定します。 今回はSheet1に対して操作を行っていきます。 2.セルの色を取得(Get Cell Color)アクティビティを追加する 実行シーケンス内にセルの色を取得(Get Cell Color)アクティビティを追加します。 3.セルの色を取得(Get Cell Color)プロパティで色を取得したいシート名とセルを指定する セルの色を取得(Get Cell Color)アクティビティを選択し、プロパティウィンドウでシート名(例だとSheet1)、セル範囲(A1:A2等)を指定します。 4.セルの色を取得(Get Cell Color)プロパティでColor型の変数を指定する 最後に取得した色の情報を格納するColor型の変数を指定します。Ctrl+Kもしくは右クリックメニューで変数を作成すると簡単です。    

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を忘れずに 以上でシート名が全部取れました。これを応用して条件分岐の条件にすれば、複数シートを持っているブックから指定したシート名だけを処理したりなんてことも楽勝です。