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