【UiPath】モダンデザインでのExcel操作系のアクティビティを使ってみた①

#はじめに
:::note info
今回はモダンデザインで使用可能なパッケージExcel ModernのアクティビティをStudioで使用してみよう第１弾となります。
また、この記事はUiPath Advent Calendar の16日目の記事になります。

実行環境は以下の環境で行っております
UiPath Studio 2021.10.4 (Community License、UIAモード：モダンデザイン）
:::
#■Excelファイルを開いてみよう
クラシックデザインの場合Excelを開く場合「Excel アプリケーション スコープ (Excel Application Scope)」を使用していましたがモダンデザインでは代わりに下記のアクティビティを使用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482005/0171aef2-8ee5-10f1-5e07-ed08f276be94.png)
今回は<b><font color="blue">「Excelプロセススコープ」「Excelファイルを使用」</font></b>を使用してみたいと思います。

#■Excelプロセススコープ

①まずは<b><font color="blue">「Excelプロセススコープ」</font></b>をアクティビティパネルから設置します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482005/332f517d-65ae-a7ac-8ffe-2db08e18d609.png)
②設置したら次はプロパティを設定していきましょう

デフォルトでは全て<b><font color="blue">「プロジェクトと同じ」</font></b>になっていますので、プロジェクトの設定とは違う設定にしたい場合はオプションを変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482005/47f90301-3561-c130-4b9d-a805c8a7c4b3.png)
####★オプションの各内容
######1.Excelウインドウを表示
|選択肢|概要|
|:---|:---|
|プロジェクトと同じ| [プロジェクト設定] と同じ設定を適用(デフォルト設定)|
|True|Excelファイルを開いた時ファイルは可視化されます。<br>※Excel アプリケーション スコープで可視にチェックを付けたときと同じ|
|False|Excelファイルを開いた時ファイルは非表示になります。|

######2.アラートを表示　

|選択肢|概要|
|:---|:---|
|プロジェクトと同じ| [プロジェクト設定] と同じ設定を適用(デフォルト設定)|
|True|アラートを表示する|
|False|アラートを表示しない|


######3.ファイルの競合の解決方法
既に別のExcelプロセスで開いている場合にどう対応するかを設定する。

|選択肢|概要|
|:---|:---|
|プロジェクトと同じ|[プロジェクト設定] と同じ設定を適用(デフォルト設定)|
|なし|処理は実行されません。|
|保存せずに閉じる|競合しているExcelファイルを保存せずに閉じます|
|ユーザーに確認|ファイルを閉じるよう求めるメッセージが表示されます<br>ユーザー対応が必要なのでAR実行時のみの実装になるかと思われる|
|例外をスロー|例外がスローされます|


######4.プロセスモード
|選択肢|概要|
|:---|:---|
|プロジェクトと同じ|[プロジェクト設定] と同じ設定を適用(デフォルト設定)|
|常に新規作成|常に新しいExcelプロセスが作成されます<br>対象ファイルを開いた状態で実行したら画像の様になりエラーになりましたが既存のプロセスに対するアクションを強制終了にしたらエラーになりませんでした<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482005/3c589605-b03a-1ba3-fa22-0e8894aeebed.png)|
|有人オートメーション ユーザー |Excelファイルを開くときに他のExcelファイルが開いていたり、複数のExcelプロセスが検出された場合下記画像の様に、メッセージが表示されます。<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482005/b7651c04-9957-9784-af7c-cd617d8faf6d.png)|
|存在する場合は再利用|開いているExcelプロセスを検索して、対象のExcelファイルが既に開いているかどうか確認を確認する<br>・見つかった場合：開いている対象ファイルを使用します<br>・見つからなかった場合：対象ファイルを開きます<br>※別の開いているファイルが見つかった場合は、[ファイルの競合の解決方法] の設定が適用されます。|
|存在する場合のみ|開いているExcelプロセスを検索して、開きたいファイルが既に開いているかどうか確認します。<br>・見つかった場合：開いている対象ファイルを使用します<br>・見つからなかった場合：例外がスローされます|

######5.マクロの設定
|選択肢|概要|
|:---|:---|
|プロジェクトと同じ|[プロジェクト設定] と同じ設定を適用(デフォルト設定)|
|EnableAll |すべてのマクロが有効になっており、マクロの実行ができます|
|DisableAll |指定されたExcelファイルですべてのマクロが無効になっているためマクロは実行できません|
|Excel の設定を使用|現在のExcelマクロ設定を読み取ります|
######6.既存のプロセスに対するアクション
別の Excel プロセスが実行されている場合に実行されるアクションです。

|選択肢|概要|
|:---|:---|
|プロジェクトと同じ|[プロジェクト設定] と同じ設定を適用(デフォルト設定)|
|なし|既存プロセスに関して何もアクションを実行しない|
|強制終了|保存処理を行わず開いているすべてのExcelファイルを閉じます<br><font color="Red">プロセスkillのアクティビティと同じように保存せず強制終了するためこの設定にするときは注意！</font>|

######7.起動のタイムアウト
対象のExcelファイルが起動された場合に開始するまでの待機時間です
デフォルトの待機時間は<b><font color="Blue">「20秒」</font></b>

######8.起動方法

|選択肢|概要|
|:---|:---|
|プロジェクトと同じ|[プロジェクト設定] と同じ設定を適用(デフォルト設定)|
|オートメーション|自動化APIによって起動されます<br>・メリット：起動が高速<br>・デメリット：<font color="Red">すべてのアドインが読み込まれるわけではないため、ブックが適切に機能するためにアドインを必要とする場合には問題が発生する可能性がある</font>|
|アプリケーション|手動で開いたときのように起動する<br>Excel読み込み動作があらゆる面で保証される (アドインなど) |



:::note info 
以上のプロパティを必要な設定に完了したらExcelアプリケーションスコープの設定は完了です。
ここまででExcelアプリケーションスコープではどのファイルを開くなどの設定をしていないことにお気づきかと思いますがExcelアプリケーションスコープ自体では対象ファイルのパスなどの設定は行いません。
対象ファイルなどの指定はこの後記載いたします「<b><font color="Blue">Excelファイルを使用</font></b>」アクティビティで指定します
:::

#■Excelファイルを使用
①先ほど設定した「Excelアプリケーションスコープ」内に「Excelファイルを使用」アクティビティを設置します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482005/39e6199e-a3ab-a7b3-f08f-96c01e2fd95e.png)

②対象ファイルを設定します。
　変数で設定する場合は画像赤枠部分に対象の変数を設定します。
　今回はFilePathという変数に対象ファイルのパスを格納いているのでFilePath変数を設定しています。
　直接パスを指定したい場合はフォルダアイコン(画像の緑枠)をクリックしてファイル選択することも可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482005/48f26c9a-e251-abc9-4be9-ae589470feea.png)
③オプションの設定を変更します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482005/6a336cb6-9db7-9c5c-07f8-9f79af53eee1.png)

|選択肢|概要|
|:---|:---|
|変更を保存|・<b>チェック有</b>：ファイルの内容を変更後自動保存を行う(デフォルト)<br>・<B>チェック無</b>：自動保存を行わない。保存を行う場合は「Excel ファイルを保存」アクティビティを使用する|
|存在しない場合ファイルを作成|・<b>チェック有</b>：指定のファイルが存在しない場合新しいExcelファイルが作成されます(デフォルト)<br>・<B>チェック無</b>：指定のファイルが存在しない場合エラーとなります|
|読み取り専用|読み取り専用ファイルとしてExcelファイルを開きます|
|読み取る値の書式|・<b>プロジェクトと同じ：</b>：[プロジェクト設定] と同じ設定を適用(デフォルト設定)<br>・<b>既定：</b>  Excel によって返される既定の書式設定を適用<br>・<b>未処理の値：</b> Excel から未処理の値を取得し、すべての書式設定を無視します<br>・<b>表示値：</b>Excel内の表示形式通りに値を取得します<br>※アクティビティ上とプロパティパネルで表記が異なります![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482005/ad999d4f-b15d-e33f-cb4a-6ada9f9fa425.png)|

以上で「Excelファイルを使用」アクティビティの設定は完了です。
この後は実際に行いたいExcelファイルの処理を下記画像の様に「Excelファイルを使用」アクティビティ内に設置してあげればOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482005/d8aa2eab-6d38-f579-6fca-faf6039917ec.png)

#おわりに
今回は「Excelプロセススコープ」「Excelファイルを使用」について記載いたしましたがいかがでしたでしょうか。
他のアクティビティにも次回以降触れていこうと思います。
閲覧いただき有難うございました。