UiPathのコミュニティエディションをちょっとだけ使ってみた - 作ってみる

[前回](https://qiita.com/giisuu/items/df0d1c5e8140f2242340)インストールしたUiPathコミュニティエディションを使って何かしてみます。

## 環境情報
- windows10 Pro
- UiPath Studio(コミュニティエディション) 18.2.4.0

## やってみること
さくっとやってみたいので、
公式ガイド [UiPath Studio Guide](https://studio.uipath.com/lang-ja)の[データテーブル変数](https://studio.uipath.com/lang-ja/docs/data-table-variables)のサンプルに従って、Excelの操作をやってみます。


## 事前の準備

### サンプルプロジェクトダウンロードと解凍
[データテーブル変数](https://studio.uipath.com/lang-ja/docs/data-table-variables) のページの下部にある、"サンプルプロジェクト"をダウンロードして解凍しておく
![image.png](https://qiita-image-store.s3.amazonaws.com/0/69329/34f893c0-2926-afec-ebea-f7e3a341dffb.png)

### プロジェクトの作成編
  1. Blankイメージでスタート
      ![254f4453.png](https://qiita-image-store.s3.amazonaws.com/0/69329/eedcdd02-c6fb-0005-65dc-eb37da821d61.png)

  2. プロジェクト名等は適当に
      ![3c8c51da.png](https://qiita-image-store.s3.amazonaws.com/0/69329/054fcf70-a639-98d4-3369-f634665b2ecb.png)

  3. Excelを用意
    解凍したサンプルプロジェクト内の"Database.xlsx"と"date&name.xlsx"があるのでプロジェクトの直下に配置
    ![image.png](https://qiita-image-store.s3.amazonaws.com/0/69329/4daf1fd7-2199-e7af-d8c4-930380b146eb.png)


### 不足アクティビティの追加
インストールしたての場合、Excel Application Scope アクティビティが無いらしいので、追加する。

  1. Designパネル左側の、Activities枠内のManage Packagesをクリック
     ![1663f111.png](https://qiita-image-store.s3.amazonaws.com/0/69329/3ba10d29-2fa6-b250-ebc2-ac8e91e22bf5.png)

  2. Manage Packagesの左側の、AvailableメニューにてAllを選択し、Excelで検索 -> 一覧に出る、UiPath.Excel.Activitiesをインストール
     ![94bc7ab1.png](https://qiita-image-store.s3.amazonaws.com/0/69329/0b852281-0b60-5e17-f421-76f5b3b225f8.png)

## (ようやく)作ってみる

### Excelを読み込む定義を作成

  1. シーケンス(処理の範囲、大枠を定義する)をドラッグアンドドロップで作成
     名前はそのままでもOK(ただしメンテナンスまで考慮するならわかりやすい名称に変えておくべき)
     ![86131391.png](https://qiita-image-store.s3.amazonaws.com/0/69329/ec1f02c7-43cc-269f-b5ff-13a23b51ef66.png)

  2. Excel Application Scope アクティビティをシーケンスに追加
     ![373cb68c.png](https://qiita-image-store.s3.amazonaws.com/0/69329/00e44b69-f782-c649-4edd-dc8f12f1f295.png)

  3. Excel Application Scope のプロパティ - Workbook Pathに、読込み対象のExcelへの(相対)パスをダブルコーテーションでくくって記載
     ![71e9536a.png](https://qiita-image-store.s3.amazonaws.com/0/69329/b037230d-1f2c-9e3b-d3e1-a8aa7573a553.png)

  4. Read Rangeアクティビティを追加し、プロパティにそれぞれ以下を入力
      - Range(データ取得範囲) : "G7:G37"
      - Sheet Name : "Orders"
      ![61116b1c.png](https://qiita-image-store.s3.amazonaws.com/0/69329/73c76215-6dd7-dd47-fd96-ef84f070529b.png)

      ここまでで、対象ファイルの指定シート、指定範囲の値を読み込むための定義ができました。

      ただ、このままでは読み込んだ値を格納する場所がないせいで他の処理で使えないため、変数を用意
  
  5. 1.で追加したシーケンスを選択し、画面下部のVariablesをクリック
      ![224d6ef6.png](https://qiita-image-store.s3.amazonaws.com/0/69329/b0aa968c-ed8d-941d-000f-482b606358f0.png)
    
  6. Create Variableと表示されているところから、変数を追加
      - Name : datNamesList(任意の名称でもOK)
      - Variable Type : DataTable(Browse for Types... から以下のショットの通りに選択)
        ![986983c3.png](https://qiita-image-store.s3.amazonaws.com/0/69329/d7098c6b-bcb3-d4ec-5d20-3e7db5ba5892.png)

    
  7. 4.で追加したRead Rangeアクティビティのプロパティに以下を追加
      - Output : datNamesList
      
  これでようやく、取得した値を他の処理で利用することでできるようになりました。


### Excelに書き込む定義を作成
  1. Write Rangeアクティビティを追加し、プロパティにそれぞれ以下を入力
      - Data Table : datNamesList
      - Sheet Name : "Database"
      - Starting Cell : "B7"
      - Workbook Path : "date&name.xlsx"(相対パス) 
      ![1f039d9e.png](https://qiita-image-store.s3.amazonaws.com/0/69329/14f9dead-9d9a-7fec-c627-d3cb7acf8b9d.png)

  書き込む定義はこれで終了です。
  

## 実行する
メニューのRunをクリックするか、F5キーを押すことで実行できます。

実行した結果、対象のファイルのB7以降に値が入っていれば成功です。
![1a7b3e35.png](https://qiita-image-store.s3.amazonaws.com/0/69329/6e1f985b-d7c1-f530-b31a-92d517bf6c12.png)


## まとめ
  - VBAとかを色々組むことに比べればだいぶ簡単に自動化処理を作ることができた
  - ただ、やっぱり以下のようなプログラミングの基本要素は押さえておかないと、サクサクとは作れない
    - 分岐
    - ループ
    - 変数
    - スコープ
  - あと、自動化できるからーと分岐やループをばかすか入れてしまうと、メンテナンスできなくなるほど巨大化しそうなので、事前の設計が超重要