App Integration>Excel>Tableの中にある以下のアクティビティについて使い方を紹介します。
Excelアクティビティが見当たらない場合はこちらをご参照ください。
①Delete Column
②Filter Table
③Get Table Range
④Insert Column
⑤Sort Table
まず、これらのアクティビティを使う際にはExcel側に準備が必要となります。
テーブルっぽいデータを入力するのはもちろん、Excel内でテーブルの名前をつけてあげる必要があります。
そして、テーブルにしたいセルを選択した状態で、挿入タブのテーブルをクリックします。
テーブルの作成はそのままOKを押します。(テーブルの範囲を変えたい場合は変更してください。)
すると作成したテーブルが以下のようになります。(色が気にくわなければ、デザインタブのテーブルスタイルから変更してください。)
最後に、Excel内でテーブル名を設定します。
テーブル内のどこかのセルを選択して、デザインタブをクリックしてください。
左にあるテーブル名というところが自由に変更出来るようになっているので任意のテーブル名に変更してください。(デフォルトはテーブル1)
以上でExcel側の準備は終わりとなります。
ここからやっと本題のUiPathに入ります。
1つ目はDelete Columnというアクティビティを使ってみます。
これはその名の通り列を削除できるというものです。
Excel Application Scopeの中で使います。
Tablenameには先ほどExcelで作成したテーブル名、ColumnNameは削除したい対象の列名(1行目)です。(今回の例ではNoという1列目を消してみます。)
これを実行すると以下のように、もともとA列にあったNoという列がまるっと削除されます。
続いてFilter Tableというアクティビティを紹介します。
これはExcelでよく使うフィルター機能を使ってくれるというものです。
使い方はDelete Columnと同じく、Excel Application Scopeの中で使います。
Tablenameには先ほどExcelで作成したテーブル名、ColumnNameはフィルターをかけたい列名、Filter OptionsにはFilterで抜き出したい内容を配列型で入力します。(今回の例では大陸列の”アジア”と”北アメリカ”を抽出してみます。)
行が消されるわけではなく、Excelのフィルター機能を使った状態になってます。
なので、戻そうと思えば簡単に戻すことも可能です。
次にGet Table Rangeというアクティビティを使います。
これはテーブルの対象のセルがどこかを取得出来るアクティビティとなります。
基本的には①②と同じで、今回はOutputに変数をセットしておいて、メッセージボックスで何が取れたか見てみたいと思います。
これを実行すると、以下のようなメッセージボックスが表示されます。
テーブルのレンジが取得できました。これを応用すると、このあとにレンジを使うアクティビティを置くと、テーブル名さえわかっていればテーブルのレンジが変更されても対応可能となりますね。工夫すればテーブルの起点のセルの一つ上に書き込みたいときとかにも使えそうですし、いいかもしれませんね。
続いてはInsert Columnというアクティビティを紹介します。
これはDeleteの反対に列を追加するアクティビティとなります。
今回は”テスト”という列を”国”と”大陸”の間にいれてみようと思います。
TablenameにはExcelで作成したテーブル名、ColumnNameは挿入したい列名、Psitionは列を挿入したい数字を入力します。
列番号は0始まりなので、ちょうど2の場所に挿入されましたね。
データを入れたい場合はこの後、For Each Rowを使うのがよいかと思います。
最後にSort Tableというアクティビティを紹介します。
これは昇順降順の並べ替えが出来るというものです。
TablenameにはExcelで作成したテーブル名、ColumnNameは並べ替えの基準にしたい列名、OrderはAscending(昇順)かDescending(降順)を選択します。
今回は”国”の列を昇順に並べ替えてみたいと思います。
国の名前順に並べかわりましたね。
ちなみにFilter TableはExcelのフィルター機能なので戻すことも出来たのですが、これはほんとに書き換わってしまうので、一度Sortしてしまうと元に戻せなくなる可能性がありますのでご注意を。
以上、ExcelパッケージのTableの中にあるアクティビティの紹介でした。
実際使ったことはあまりないのですが、ちゃんとテーブル化されているExcelであれば便利そうですね。
テンプレートとかに仕込んでおくと便利かも。