Category Archives: ファイル読み込み

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ファイルを準備しているフォルダからファイルを読み込む 今回は複数のWordファイルが1つのフォルダ内に入っているという想定で進めます。 まず、そのフォルダの中にあるファイルの場所をUiPathに読み込ませます。 フォルダの場所(パス)を格納する変数(string型、もしくはGenelicValue型)を作り、Assignで設定しましょう。 もし今後このフォルダの場所が変わっても基本的にこの変数だけ変更すれば、 後の処理はメンテナンスしなくてよい、という作り方をしていきます。 2.For Eachアクティビティを使って複数ファイルに対する処理を設定する For Eachの中でDirectory.GetFilesを使い、Wordファイルの場所を指定します。 ※Directory.GetFilesの詳しい説明はこちらの通りです。 3.ファイルをPDFに変換する 以前の方法と同様にWord Application scopeとExport to PDFアクティビティを設定していきます。 Word Application scopeで指定するファイルの場所をFor Eachのitem変数で設定します。 最後にDoの中でExport to PDFアクティビティを使い、出力PDFファイル名を指定します。 この時、Export to PDFのFilePathを上記のようにすることでWordと同名のPDFファイルを作ることができます。 なお、このやり方の場合はWordファイルのあるフォルダ(folderpath)と同じフォルダにPDFが出力されます。 ポイントはSystem.IO.Path.GetFileName(item.ToString)の部分です item.ToStringには文字列に変換されたファイルのパスが入っています。 System.IO.Path.GetFileNameは、.netのメソッドでファイルパスの中からファイル名のみを取りだすことができます。 System.IO.Path.GetFileName(ファイルパスの文字列) という使い方を覚えておきましょう。 上記で準備は完了です。 これを実行することでWordファイルの格納されているフォルダに同名のPDFファイルが作成されます。

UiPathで複数ファイルに同じ処理をする方法

UiPathで複数ファイルに同じ処理をする方法 UiPathではいろいろな作業を自動化することができます。作業には1回限りのものや、 ファイルを変えて同じことをするといった繰り返し作業などいろいろなパターンがあります。 今回は上記のファイルを変えて同じことをする=複数ファイルへの同じ処理をさせる方法を紹介します。 1.1フォルダにファイルを作業対象のファイルを集める まず作業をさせたいファイルを1フォルダの中にすべて格納しましょう ※例としてc:\testにtest1~3というEXCELファイルを入れています。 2.For Each アクティビティを追加する For Eachアクティビティは繰り返し処理を行うためのアクティビティです。 このアクティビティは繰り返す回数をファイルの数、とすることができますので、 何回実行するかはファイルの数で自動的に変更することができます。 3.For Eachの対象として「Directory.GetFiles」メソッドを使う .netのメソッドにはDirectory.GetFilesという、「フォルダの中のファイルすべて」を指定することのできるメソッドがあります。 UiPathはこうした.netのメソッドをそのまま利用することができますので、こちらをFor Eachの繰り返し条件として設定します。 具体的には以下のような使い方になります。 Directory.GetFiles(”フォルダの場所”) 括弧の中のフォルダの場所は文字列(String)でないといけませんので、 あらかじめ文字列を入れたString型の変数を指定するか、 “ ”でWindowsのフォルダパス(c:\test等)を記述します。 記述する場所はitem inの後にある入力欄の中になります。 ※例ではDirectory.GetFiles(“C:\test”)と記載しています 4.Bodyに繰り返しさせたい処理を記載する あとはFor Eachの中にあるBodyの中に、繰り返しさせたい処理を作りこんでいくだけです。 上記例ではitemという変数の中にフォルダの中にあるファイルのObject情報が1つずつ入っていくので、 それをメッセージボックスで表示させています。 ※Object情報以外の型にしないといけない場合もあるので、 その際はプロパティのTypeArgument部分をString等、ほかの変数の型に変更させて使います。 実行すると、上記のように1ファイルごとのパスが表示できました。

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

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

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でPDFデータを読み込もう!

UiPathでPDFデータを読み込もう! ※この記事で説明するアクティビティを利用する前にPDF用のパッケージをインストールしておく必要があります。 また、当然ながらAdobe社のAcrobat等がインストールされていないと利用できません。 UiPathではPDF用のアクティビティを使うことで、PDFのテキストファイルを取りこむことができます。 なお、PDFのテキストファイルは最初からファイルに埋め込まれているもの(範囲指定できるタイプのもの)となります。 一応OCRもできますが、こちらについては別途紹介します。 1.Read PDF textアクティビティを追加する 後は中央のボックスにPDFファイルの場所を指定するだけです。 なんとこれだけで、Outputに指定した変数へテキストデータが格納されます。 もしPDFからテキストをコピペしてEXCELに張り付けるような作業をしている方がいらっしゃるならぜひお試しください。 なお、デフォルトではInputプロパティが”All”になっていますので、全ページの情報を抜きだしてきます。 ページ指定等は印刷と同じようにInputプロパティで例えば3ページなら”3″、1~5ページなら”1-5″と指定することで、 そのページのテキストを抜きだしてきます。本来印刷で2と5ページなら”2,5″なのですが、これはエラーとなるようです。 (おまけ)もしファイルにパスワードがかかっている場合はプロパティのPasswordで指定することができます。  

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で新規作成すれば名前を決めるだけで変数は勝手に作ってくれます。 これで格納したいセルの数値がこの変数へ入ります。  

UiPathでテキスト(txt)ファイルを読みこもう!

UiPathでテキスト(txt)ファイルを読みこもう! ※2018.3よりUiPathがデフォルト日本語のアクティビティ名となりましたので、この記事では各アクティビティや機能名を日本語名(英語名)というように記載しています。 UiPathではテキストファイルを読みこみ、文字型の変数に格納することができます。 使い方は非常に単純で、「テキストファイルを読み込む(Read text file)」アクティビティを使ってテキストファイルと出力先の変数を指定するだけです。 早速メモ帳でテキストファイルを作ってUiPathで読み込ませ、メッセージボックスに表示させましょう。 そう、指定するだけのはずなんですが… 文字化けしています。 これは読み込ませたテキストファイルのエンコードが原因です。 エンコードはプロパティのエンコーディング(Encoding)で指定するのですが、 公式のアクティビティガイドにはよくわからない説明と、 ここが指定されていないと自動でデフォルトエンコードを判別するっぽいことが書かれています。 ま、どうせ英語の世界のお話でしょうね。 日本語のWindowsでメモ帳開いて適当なことを書いて保存したら画像のようにデフォルトがANSIになっていると思います。 ANSIは「Shift_JIS」エンコードのことです。 というわけで、エンコーディング(Encoding)プロパティはこのように指定します。 無事うまく読めました。なんかこのアクティビティ文字化けするんだけど、 って困っている方がいたらこちらをお試しください。