Excelファイルに値を入力したり、特定のセルから値を取得したりする場合に、主にExcel Application ScopeアクティビティとWorkBookアクティビティを使用する2パターンが存在します。

それぞれの主な特徴は下記の通りです。

Excel Application Scopeアクティビティ

  • MicrosoftのExcelがインストールしてある必要がある。
  • 対象ファイルが存在しない場合、新規作成をしてくれる。(オプション)
  • 対象ファイルをバックグラウンドで操作するかフォアグラウンドで操作するか選択可能。(オプション)

WorkBookアクティビティ

  • ExcelがインストールされていなくてもExcelファイルを操作可能。
  • 対象ファイルは存在していることが前提。
  • 対象ファイルをバックグラウンドでのみ操作。

 

例えば、対象のファイルをWrite Cellしたい場合、

Excel Application Scopeアクティビティならこのようになります

 

WorkBookアクティビティならこのようになります

 

 

WorkBookアクティビティの方がアクティビティが少なく、スマートに作れます。

 

しかし、WorkBookアクティビティにはバグが存在します。(2018/09 UiPath社に問い合わせ済)

1万行以上のExcelファイルを読み取るとUiPathがOut Of Memoryで処理落ちしてしまいます。原因としてはWorkBookアクティビティの特徴である、Excelをインストールしていなくても実行できるという点にあるそうです。

WorkBookアクティビティの仕組みとしてExcel操作するAPIをUiPathで叩いています。APIを叩いた際にうまく処理できていないのか処理落ちしてしまうそうです。

 

こちらのバグはExcel Application Scopeアクティビティでは発生しません。

個人的にはWorkBookアクティビティの方がアクティビティの数が減り、初期設定でバックグラウンドで実行されるので好きだったのですが、バグがあることを知ってからはExcel Application Scopeアクティビティを使用しています。

Excel Application Scopeアクティビティで不自由に感じたことはないので実行環境にExcelがインストールされていない等の理由がなれけば、Excel Application Scopeアクティビティを使用するべきだと思います。

 

UiPath社はいつか対応するということですので対応してくれることを待ちましょう。