【UiPath】Excelデータ書き込み ハンズオン(初心者向け)

はじめまして。OKiNAと申します！
UiPathを用いてのRPA開発経験が気が付いたら2年を超えていました！
備忘録かつ自身のナレッジが困っている誰かの役に立てればと思い、Qiitaデビューすることになりました。どうぞよろしくお願いいたします！
※間違っている箇所や表現が不適切な箇所があるかもしれませんが、その際は都度修正いたしますので、ご指摘いただけますと幸いです。

初回の記事はRPAを初めて触ったことを思い出しつつ、記事を書いていきたいと思います。


# はじめに
RPAとは、「Robotic Process Automation」の略語で、パソコンで行っている事務作業を自動化できるソフトウェアロボット技術です。
本記事では、初心者向けにRPAツール(UiPath Studio)を用いて、簡単な自動化を体験することを目的としております。
今回は皆様が触ったことが多いと思うExcelを用いて、Excelデータ書き込みの基本をハンズオン形式でまとめていきます。

:::note info
RPAではExcelは多岐に渡って使用されます。
Excelにデータ書き込みはRPA実行結果の書き込みや、他システムから取得したデータ書き込み等でも利用されているため、非常に重要な内容です。
:::

## この記事の対象者
- UiPath初学者
- RPAを実際に試しみたい方

# この記事のゴール
- UiPathでExcel書き込み方法の習得。

# 目次
1. 開発環境紹介
1. ロボで処理してみたいことを考えてみよう！
1. 実装方法を考えてみよう！
1. 手順例をもとにUiPath Studioで開発してみよう！

# 開発環境紹介
- OS：Windows11
- 開発ツール：UiPath Studio
- バージョン：2023.10.0
- ライセンス：Community License
- モダン デザイン エクスペリエンス：いいえ
- Microsoft Excel：2310

:::note warn
- 開発環境に関しては、バージョン等が異なっていても問題ございません。
- バージョンによっては画面が一部異なる可能性はございます。
:::

### UiPath 依存関係
| パッケージ名 | バージョン |
|:--|:--|
| UiPath.Excel.Activities | 2.22.2 |
| UiPath.Mail.Activities | 1.21.1 |
| UiPath.System.Activities | 23.10.2 |
| UiPath.Testing.Activities | 23.10.0 |
| UiPath.UIAutomation.Activities | 23.10.3 |

### UiPath 依存関係確認方法
![依存関係.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524399/8a50d69b-bd19-87d7-bde7-bfb685a6917c.png)
1.「パッケージを管理」をクリックします。
2.「パッケージを管理」画面が開き、プロジェクト依存関係の情報が表示されます。

### モダン デザイン エクスペリエンス設定方法
![モダン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524399/cf167223-90da-d632-3093-87c48d3b95fa.png)
![情報.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524399/aa8c92a5-1be0-a981-e8ee-de87ea59ed3a.png)
1.「ファイルを分析」をクリックします。
2.「ワークフローアナライザーの設定」をクリックします。
3.「プロジェクト設定」画面が開き、**モダン デザイン エクスペリエンス**を<font color="red">**いいえ**</font>に変更します。
4.「情報」ポップアップが表示された場合、[再読み込み]をクリックします。
5.再度「プロジェクト設定」画面を開き、**モダン デザイン エクスペリエンス**を<font color="red">**いいえ**</font>になっていることを確認します。

# ロボで処理してみたいことを考えてみよう！
RPAの利用目的は様々ありますが、「業務の可視化」・「業務改善」を目的として導入するケースが多くあります。
自身の業務中に業務の自動化出来たらいいなと思うことは考えたことはありますでしょうか？
私は下記の内容を考えたことがあります。
- 大量のExcelファイルを自動で集計したい！
- 申請書を自動で作成したい！
- Webページから表データを読み取りExcelに転記したい！(データスクレイピング)

これら全ては<font color="red">**RPAで実現可能**</font>です！
また、共通してExcelにデータ書き込みを行うことにより実現します！
今回はRPA体験ということで、下記の処理要件をもとにExcelのデータ書き込みを体験してみましょう！

# 実装方法を考えてみよう！
ハンズオン課題として、下記の処理要件を実装してみよう。

■処理要件
テスト結果.xlsxの"Sheet1"のD2にセルに"合格"を入力する。

### サンプルデータ(テスト結果.xlsx)
![サンプルデータ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524399/19e4f56f-72f6-3092-e6a0-e048c3ae167e.png)
### サンプルデータ(コピー用)
| No | 名前 | 点数 | 結果 | 確認日 |
|:--|:--|:--|:--|:--|
| 1 | 西 美紀 | 100 | |
| 2 | 坂田 哲昭 | 90 | |
| 3 | 河原 敬 | 80 | |
| 4 | 塚本 知生 | 70 | |
| 5 | 福本 れいや | 60 | |
| 6 | 辻 美喜夫 | 50 | |
| 7 | 大城 正次 | 40 | |
| 8 | 松井 智子 | 30 | |
| 9 | 宮沢 幸博 | 20 | |
| 10 | 小森 利浩 | 10 | |

処理要件に関して、シンプルな内容ですが、初めてRPA開発する場合、実装手順が分からないケースが多々あると思います。
その場合は、下記内容を思い出して落ち着いて考えてみましょう。
『RPAとは、「Robotic Process Automation」の略語で、<font color="red">**パソコンで行っている事務作業を自動化できる**</font>ソフトウェアロボット技術です。』
つまり、今まで手作業で行ってきたことを再確認することがポイントになります！
実際にヒトの手で操作しながら考えてみましょう。
今回の課題を達成する場合、以下の操作手順が考えられます。
■手順例
1.処理対象のファイル(Excel)を開く。
2.シート名"Sheet1"を選択する。
3.処理対象セル(D2)を選択する。
4.処理対象セル(D2)に「合格」の文字を入力する。
※上記の手順は一例になります。

:::note info
実際のRPA開発でも実装方法が分からない場合、実際に手で操作して確認や処理工程の細分化を行います。
もし迷った場合は、一度見つめなおすことが解決の糸口になります！
:::


# 手順例をもとにUiPath Studioで開発してみよう！
### 完成イメージ
![Excel書き込み.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524399/dcc92cdc-d826-e19b-4de3-98ceb6f76f69.png)

### 使用するアクティビティ情報
| 英語名 | 日本語名 |
|:--|:--|
| Sequence | シーケンス |
| Excel Application Scope | Excel アプリケーション スコープ |
| Write Cell | セルに書き込み |
| Save Workbook | ブックを保存 |

### 1.処理対象のファイル(Excel)を開く。
![最新.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524399/561138c3-bede-f21d-0c9f-bcf2f4cf3c44.png)

UiPath StudioではExcel系アクティビティを使用する場合、「Excelアプリケーションスコープ」というアクティビティを配置します。
処理したいExcelファイルはフォルダアイコンをクリックすることにより、「Excelドキュメントを選択」画面がポップアップされます。「Excelドキュメントを選択」から処理対象ファイル(Excel)を選択します。

#### 「Excelアプリケーションスコープ」プロパティ値
![スクリーンショット 2023-11-22 052336.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524399/11ee7f79-693d-4b8a-d440-85897e5154ac.png)
### 使用するアクティビティ情報
| プロパティ名 | 初期値 | ハンズオン |
|:--|:--|:--|
| 可視 | <font color="red">チェックあり</font> | <font color="blue">チェックなし</font> |
| 変更を保存 | <font color="red">チェックあり</font> | <font color="blue">チェックなし</font> |
| 存在しない場合ファイルを作成 | <font color="red">チェックあり</font> | <font color="blue">チェックなし</font> |
| 読み取り専用 | <font color="blue">チェックなし</font> | <font color="blue">チェックなし</font> |

### 2.シート名"Sheet1"を選択する。
![スクリーンショット 2023-11-22 005324.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524399/52c94be9-93c2-0ddd-e4c8-269fedfc2ce9.png)
処理したいExcelファイルの中に存在するシート名を入力します。
Excel内に複数のシートが存在していても赤枠箇所(シート名)が処理対象になります。
固定値で選択する場合、「"シート名"」の形式にします。

### 3.処理対象セル(D2)を選択する。
![スクリーンショット 2023-11-22 005517.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524399/468628e3-ffa7-8153-17d2-edb69b4dee42.png)
処理したいExcelファイルの中で書き込みを行いたいセル情報を入力します。
固定値で選択する場合、「"セル"」の形式にします。

### 4.処理対象セル(D2)に「合格」の文字を入力する。
![スクリーンショット 2023-11-22 005612.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524399/8842bd5e-fddb-5926-924a-025fe87ea4f3.png)
処理したいExcelファイルの中で書き込みを行いたいデータを入力します。
固定値で選択する場合、「"文字列"」の形式にします。

### ロボ実行を行い、実行結果を確認してみよう！
#### UiPath Stdio実行する。
![保存.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524399/406a6094-2d13-36c7-bf71-348192e2711f.png)
[ステップ イン]をクリックします。
[ステップ イン]とは、アクティビティを1つずつデバッグします。
1回ずつ[ステップ イン]をクリックしていくと全部のアクティビティが通過します。
通過後にExcelファイルを確認してみると・・・
![スクリーンショット 2023-11-22 013213.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524399/aed266f3-ed13-f8a7-bd86-98ba87afe7e3.png)
**テスト結果.xlsxの"Sheet1"のD2にセルに"合格"が入力されました！！**


#### 作成したフローを修正してみる。
![スクリーンショット 2023-11-22 023841.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3524399/7d0c5324-fa80-c3be-0c43-89625e7ddad4.png)
作成したフローで「セルに書き込み」アクティビティの設定値の変更や「セルに書き込み」アクティビティを追加してロボ実行してみるのも動きの確認が出来て理解が深まります。
いろいろ試してみましょう！！

# おわりに
Qiita初投稿になりましたが、どのように伝えれば理解しやすいか考えるのが大変でした。
投稿本数を増やしてアウトプットスキル向上も目指していきたいと思います。

さて、今回の記事は初学者・RPAを実際に試しみたい方向けに作成しております。
開発経験が無い方でも作りやすいように、「変数・引数」は利用せずシンプルな作りになっております。
Excelデータ書き込みは、実務でもよく使用しています。汎用的に使用できる処理は「変数・引数」を追加して共通部品として利用するとRPA開発効率もあがるので、是非ともお試しください。
今回の記事でRPAに興味を持てたら幸いです。

# 参考サイト
[UiPath アクティビティ 日英対訳表](https://docs.uipath.com/ja/activities/other/latest/workflow/localized-activity-names-comparison-matrix)