前提条件:
UiPath Studio Community Edition 2019.5.0
UiPath.Excel.Activities v2.6.0
Excelアプリケーションスコープのプロパティ値による方法
Excelアプリケーションスコープのプロパティ「Output > Workbook」に変数を指定する。
こうすると、ロボットが実行されている間はファイルが閉じない。ロボットの実行が終わるとExcelファイルが閉じる。
自動保存するかどうかは開いたときに決まる
たとえば、以下のように、1つ目のExcelアプリケーションスコープで開いたExcelファイルを、2つめのExcelアプリケーションスコープで書き込みを行い、保存させたいとする。
この場合、2つ目のExcelアプリケーションスコープで書き込んだ値が保存されるかどうかは、1つ目のExcelアプリケーションスコープのプロパティによる。1つ目のところで「自動保存」にチェックを入れていれば、2つ目の「自動保存」がオフでも、書き込みの後で内容が保存されている。
逆に、1つ目の「自動保存」がオフの場合、2つ目でオンにしても自動保存されない。
「プロセスを開始」でExcelファイルを開く方法
アプリケーションなどの起動に使う「プロセスを開始」アクティビティで、直接Excelファイルのパスを指定すればファイルを開くことができる。この方法の場合、ロボットが完了してもExcelファイルは閉じない。
後続のExcelアプリケーションスコープのやり方
「プロセスを開始」でExcelファイルを開く場合、そのファイルをExcelアプリケーションスコープで扱うには注意点がある。
人が操作するときと同じようにExcelが起動するため、スプラッシュ画面が出たりして、即座にExcelアプリケーションスコープでファイルを捕まえられなかったりする。
上記のように、Excelファイルを開いた直後にExcelアプリケーションスコープを実行すると、Excelが起動しきる前にExcelアプリケーションスコープへ処理が移ってしまう。実行中によく見てるとExcelファイルが二重で開かれていて、意図した動作にならない。
それを解消するためには、「プロセスを開始」の後に「要素を検出」などを挿入すればよいとされている。
↓どうにかしてExcelファイルの起動を待とうとしているサンプル
しかし実際は「要素を検出」や「待機」を挟んでも、Excelアプリケーションスコープで開いているファイルを認識できず、二重起動することが多い。
もしロボット起動後もExcelファイルを開いたまま残したい場合は、一度Excelアプリケーションスコープで編集したファイルを閉じ、フローの最後に「プロセスを開始」でExcelファイルを開くだけにした方が良さそう。