RPA開始時のExcelファイルの状態

初めての書き込みになります。初歩的な質問で失礼します。

UiPathの実務において、エクセル操作(エクセルアプリケーションスコープ)が含まれるワークフローを実行する際に、エクセルファイルを閉じた状態で実行するのが安定的な運用でしょうか?
私にはBizRobo!の操作歴があるのですが、BizRobo!ではエクセルファイルを毎回閉じておく必要がありました(閉じないとエラーになります。)。

UiPathもアカデミーなど、ある程度、操作しましたが、基本的には、エクセルファイルを開いた状態でも、閉じた状態でも、どちらでも正常に実行されるように感じています。ただ、2つのエクセルファイル(2つのエクセルアプリケーションスコープ)が存在するワークフローでは、エクセルファイルを開いた状態ではエラーになるケースがありました。

やはり、UiPathにおいても、エクセルファイルを「閉じた」状態で、ワークフローを実行するのが安定的な運用なのでしょうか。

こんにちは

基本的には、エクセルファイルを開いた状態でも、閉じた状態でも、どちらでも正常に実行されるように感じています。

UiPathではエクセルファイルの操作について主に2つの方法(UI操作を入れると3つになりますが)があり、
ひとつはEXCELのアプリケーションを通じて操作する方法(Excel Application Scope)、
もう一つはサードパーティライブラリを用いたファイルベースで操作する方法(
System-File-Workbook以下のアクティビティ)になります。

前者を実現するためには端末にエクセルがインストールされている必要がありますが、
実際のエクセルを通じての操作になるので、すでにエクセルで開いているファイルへの操作が
可能です。
後者はUiPathからのファイルベースでの直接アクセスになるため、他のアプリケーションが
ファイルを開いていると操作ができません。

ご質問の件ですが、
単純に考えて、初期状態が一つのものと、エクセルでファイルが開いており、ユーザー操作によって
多様な初期状態がありうるものとを比べた場合、一般的に多様な状態に対応しなければならない後者の方がコストは高くなります。
例えば、セルが編集状態のままになっているワークシートに、UiPathから書き込みを行うと、例外となります。これにワークフロー側で対応するなら、事前にescを送り込む、例外を補足して
措置を行う等が必要になります。
もちろん要件にもよりますが、特別な要件がない場合は、特に上記の前者の場合、
EXCELを通じて処理を行うため、そのEXCELへの既存の影響を排除するため、
開始時にexcelのプロセスをすべてkillした上で、処理を開始することもよくあります。

3 Likes

Yoichi様

ご回答ありがとうございます。

まず、Excel Application Scopeの他に、
サードパーティライブラリを用いたファイルベースで操作する方法
があることを初めて知りました。

質問の件では、エクセルファイルを開いた状態でも、
様々な初期状態があるということを気付かされました。
安定的な運用という観点から、ファイルを閉じた状況で実行することを心がけたいと思います。
(ファイルを開いたまま実行するのが望ましいケースもあると思うので、その場合は、臨機応変に対応したいと思います。)

初めての投稿でしたが、ご丁寧に対応してくださりホッとしています。
ありがとうございました。
今後とも、よろしくお願いいたします。

1 Like