Tag Archives: 読み込み

UiPathでユーザーに任意のフォルダ・ファイルを選択させる方法

UiPathでユーザーに任意のフォルダ・ファイルを選択させる方法 ※2018.3よりUiPathがデフォルト日本語のアクティビティ名となりましたので、この記事では各アクティビティや機能名を日本語名(英語名)というように記載しています。 UiPathを使ってユーザーに処理対象となるフォルダやファイルを選択させたい、 ということはよくあると思います。今回はそんなときに便利なアクティビティを紹介していきます。 ・ユーザーにフォルダを選択させたい時に使うアクティビティ そのまんまですが「フォルダーを選択」(Select Folder)アクティビティを使用します。 このアクティビティを使うと、ダイアログが表示され(Windows標準のエクスプローラのような形です)ユーザーにここでフォルダを任意に選択させることができます。 ユーザーが選んだフォルダのパスはプロパティの出力にある「選択されたフォルダー」で指定した変数に文字列として格納されます。 ・ユーザーにファイルを選択させたい時に使うアクティビティ こちらもそのまんまですが「ファイルを選択」(Select File)アクティビティを使用します。 このアクティビティを使うと、ダイアログが表示され(こちらもWindows標準のエクスプローラのような形です)ユーザーにここでファイルを任意に選択させることができます。 ユーザーが選んだファイルのパスはプロパティの出力にある「選択されたファイル」で指定した変数に文字列として格納されます。なお、特定のファイルだけ(例えば.xlsxや.pdf)を表示させたい場合は入力プロパティの「フィルター」に書かれている、(*.*)|*.*を(*.xlsx)|*.xlsxというように書き換えることで、エクスプローラに表示されるファイルの種類を限定できます。 なお、複数フィルタを掛けたい場合はカンマで区切ってください。例えばExcel関連なら(*.xls,*.xlsx,*.xlsm)|*.xls,*.xlsx,*.xlsmとなります。ちなみにこの情報は上の設定をエラーにしたときに出るんですけど、エラーじゃなくてわかる場所に書いて欲しいんですよね。 そういうとこだよ、UiPath。 (注意点) フォルダ・ファイルに共通して注意点があります。ユーザーは必ずしも思ったとおりに操作してくれるとは限りませんので、例えば「ダイアログを閉じる」なんてことは当たり前のように起こります。 選択せずにダイアログを閉じてしまうと「フォルダ・ファイルが選択されなかったエラー」が発生しますので、エラーハンドリングをしないとシナリオはそこで止まってしまいます。 また、ファイルの場合は間違った種類が選択されないようフィルタをかけたり、後でシナリオ内でのチェックを行うなどしてください。  

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ファイル読み込み、どのアクティビティを使えばいい? これまで以下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で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でクリップボードのデータを読みこもう!

UiPathでクリップボードのデータを読みこもう! UiPathのアクティビティにはWindowsのクリップボード(Ctrl+Cやマウスの右クリックメニューで文字等をコピーしたとき) 操作を行うアクティビティがあります。今回はその方法を解説していきます。 1.アクティビティ検索ウィンドウで「get from clipboard」を検索します。 見つかったら中央のワークフローに追加してください。 2.追加できたらプロパティウィンドウにOutputがありますので、 クリップボードから手に入れたデータを入れるための変数を作成しましょう。 ほかは特に触らなくてOKです。 3.次にこのアクティビティで取ってきたクリップボードの値を表示させるため、 すぐ下に「message box」アクティビティを追加します。 4.最後にmessage boxのInputへ、先ほどGet from ClipboardアクティビティのOutputプロパティで作成した変数の名前を設定すれば準備完了です。 (画像は例としてtestという変数に入れています) 5.実行する前に適当なWebページ等から文章をコピーしましょう。 コピーしたらその状態で、UiPathのワークフローを実行します。 すると、ダイアログボックスに今コピーした文字が表示されると思います。 このようにクリップボードの値をUiPathの中へ取り込むことが可能です。