UiPathで簡単にEXCELの全シート名を取得する方法

By | 2018年10月10日

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を忘れずに

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