Tag Archives: EXCEL

UiPath初心者にお勧めの書籍紹介

UiPath初心者にお勧めの書籍を紹介 その名もズバリ「できるUiPath」です。「RPAとはなにか」系の雑誌はわりと巷に溢れてきましたが、ついにUiPath専門の書籍が発売されるようです。 もちろん当サイトを使えば無料でもいろいろと情報を集めることはできますが、初心者というのは「何がわからないのかわからない」わけなので、こういった体系的にまとめられた書籍は非常に役に立つのではないかと思います。 ちなみに「できる」系の書籍については、昔は凄まじくでかい文字に当たり前のことしか書いてないというイメージしかなかったので、UiPathなんて特定の製品で大丈夫か?と心配しましたが、例えばEXCELとの連携やメール連携、年月日系の入力方法といった、初心者が気になる部分についてもかなりページを割いていますので実用的な内容であると思います。 また、2019/2月現在、UiPathに特化した書籍はこれしか存在しませんので、とにかく情報がほしい、という方にはうってつけかなと思います。2/7発売ですので、気になる方はぜひチェックしてみてください!

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

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でアプリケーションを最大化・最小化する方法

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

UiPathでEXCELシート名を変えよう

UiPathでEXCELシート名を変えよう UiPathではExcelアクティビティを使うことで、エクセルファイルから読み込んだデータの内容を処理することができました。しかし、データを読むだけが人間のする作業ではありませんので、実際にはEXCEL内での操作も自動化したいとなります。例えばよくあるものの一つとして、「Excelのシート名を変える」という作業があります。 人間がやると非常に簡単なのですが、残念なことにUiPathでは、EXCELを開き、EXCELそのものに対して何かをする、というのを補助するようなアクティビティはあまりありません。 では、無理かというとそうではありません。RPAは基本、人間がやっていることと同じことはできますので、同じ操作を作ってあげればよいです。やり方に正解はありませんが、いくつか例を紹介していきます。 1.シート名の部分をマウスでダブルクリック>変更する方法 おそらく人間と同じやり方、といわれて最初に思いつくのはこのやり方ではないでしょうか。ダブルクリック(Double Click)アクティビティを選択し、変えたいExcelのシート名部分をクリックします。 ダブルクリック(Double Click)アクティビティはクリックアクティビティと名前こそ違いますが、中身はプロパティの「クリックの種類」が最初からダブルクリックに指定されたただのクリックアクティビティです。次に文字を入力(Type Into)アクティビティを追加し、画面上で指定(Indicate on screen)を選び先ほどのシート名の部分を選択します。文字を入力(Type Into)で入力させるテキストに、変えたいシート名を入力させます。 ここで注意点として、セレクター(Selector)の指定方法があります。 上記の「画面上で指定」を使って指定したままでは開いたときのファイル名情報やシート名情報が埋め込まれていますので、それらを「*」アスタリスクに変えてあげる必要があります。クリック(Click)や文字を入力(Type Into)アクティビティのメニューボタンをクリックし、「セレクターを編集(Edit Selector)」を選択します。 中に固有の名称が含まれていたらそれらを「*」アスタリスクに変更して下さい。※画面はExcel2010のものです。Excel2016の場合はこれと異なります。   2.キーボードショートカットで「シート名の変更」をする 先ほどはクリック操作を使うことで、シート名変更モードにしていましたが、こちらはキーボード操作のみでする方法です。 まず文字を入力(Type Into)アクティビティを追加します。次に画面上で指定(Indicate on screen)で名前を変更したいシート全体を選択し、入力させる文字として「[k(alt)]hor」と入力します。これはAltキーを押しながらH,O,Rの順にキーを押しています。早すぎると動かない場合はプロパティのオプション(Options)にある、キー入力間の待機時間(DelayBetweenKeys)を500~1000位で入れてもいいかもしれません。 すぐ下にもうひとつ文字を入力(TypeInto)アクティビティを入れ、変えたい名前とEnterキーを入力させれば完了です。※慣れている方であれば、1つのTypeIntoアクティビティにすべて書いても構いません。 こちらもセレクター(Selector)には気をつけてください。 3.VBAを呼び出す 上とは全く違うやり方で、VBAの機能を使ってシート名を変更させます。VBAの起動にはExcelアプリケーションスコープ(ExcelApplicationScope)やEXCELの設定でマクロが起動できるという前準備が必要です。VBA自体の方法はいくらでもネットで見つかりますので、ここでは割愛します。UiPathでのVBA起動の方法についてはこちらの記事を参考にしてみて下さい。  

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でEXCELから読み込んだデータにフィルターをかけよう!

UiPathでEXCELから読み込んだデータにフィルターをかけよう! ※2018.3よりUiPathがデフォルト日本語のアクティビティ名となりましたので、この記事では各アクティビティや機能名を日本語名(英語名)というように記載しています。 また、「データテーブルをフィルタリング」アクティビティはUiPathのバージョンが2018.2以降でないと使用できませんのでご注意ください。 UiPathではEXCELアクティビティを使うことで、EXCELファイルから直接データを読み込むことができました。 今回は、応用として読み込んだデータ(datatable変数)をさらに加工してみましょう。 1.Excelファイルを読み込む。 前回の記事を参照して、test.xlsのファイルを読みこんでみましょう。 ※中のデータは下記のようになっています。 TEST1 TEST2 TEST3 1 あああ 1000 2 いいい 2000 4 ええええ 4000 3 うううう 3000 2.「データテーブルをフィルタリング(Filter data table)」アクティビティを追加する。 Excel アプリケーションスコープ(Excel Application Scope)の次に、「データテーブルをフィルタリング(Filter data table)」アクティビティを追加しましょう。 なお、入力(Input)と出力(Output)に同じ変数を指定した場合は、入力(Input)で指定した変数に対してフィルターがかかりますので、 今回はその方法で設定します。 3.「フィルターウィザード(Filter Wizard)」でフィルタを設定する。 「データテーブルをフィルタリング(Filter data table)」アクティビティの中にあるフィルターウィザード(Filter Wizard)ボタンを押すと、 フィルターウィザード(Filter Wizard)が開きます。タブが2つあり、それぞれ違うフィルタを掛けることができます フィルター行(Filter Rows)※データの行に対するフィルタ 設定する項目は上記を参照してください。 参考としてTEST2の列に「あああ」という文字が入っている場合の設定は下記のようになります。 +ボタンを押すとさらに条件を追加できます。 (複数条件の場合、すべて満たす場合はAND、どれか一つの場合はOrを選びます) 出力列(Output Columns) ※出力データ列に対するフィルタ フィルタをかけたデータが出力される列を指定できます。 列名もしくは、番号で指定します。番号の場合はダブルクォーテーションはいりません。 なお、今回こちらは使用しません。 4.「範囲に書き込む(Write Range)」アクティビティ等で出力して確かめる… Read More »

UiPathでEXCELのデータの一部(セル)を読みこもう!

UiPathでEXCELのデータの一部(セル)を読みこもう! ※2018.2以前のバージョンではこの記事で説明するアクティビティを利用する前にExcel用のパッケージをインストールしておく必要があります。 また、当然ながらMicrosoft Excelがインストールされていないと利用できません。 アクティビティのシステム>ファイル>ワークブック内にあるアクティビティは、 EXCELファイルのパスを指定することでEXCEL無しでも動作できるようです。 UiPathではEXCELアクティビティを使うことで、EXCELファイルから直接データを読み込むことができます。 その簡単な使い方を覚えましょう。 今回はEXCELファイルのシートの一部、つまり指定したセルからデータを読み込む方法になります。 Read Rangeとの使い分けですが、こちらを使う場合はデータがテーブルになっていない場合、 例えば申込書のEXCELなどは、人間が見るとわかりやすい紙の書類のような形式になっていることが多く、 1行ごとに書く欄があるとは限りません。そういった場合にはこの機能で読み取った方がよいでしょう。 1.Excel Application Scopeアクティビティを追加する。 まずEXCEL系操作をする場合はこのアクティビティをセットし、対象となるEXCELファイルを決定します。 今回はなにか適当なデータが入っているファイルを選びましょう。 2.Doスコープの中に「Read Cell」を追加する。 上記を参考に読み込みたいEXCELファイルやシート名、セルの位置を指定してください。 3.プロパティのOutputにある「Result」で読み込んだデータを格納する変数を指定する。 Result欄を選択後、Ctrl+Kで新規作成すれば名前を決めるだけで変数は勝手に作ってくれます。 これで格納したいセルの数値がこの変数へ入ります。