Tag 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で複数の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ファイルごとのパスが表示できました。