※この記事ではクラシックアクティビティを使います。モダンの説明はコチラの記事へどうぞ↓
RPAでは、1つのロボットで同じエクセルを何度も操作することがあります。
例えば、こんな場合、
①エクセル開いて内容を読み取る
②読み取った内容をシステムに登録
③登録結果をエクセルに入力
何も考えずに実装してしまうと、①③の合計2回、同じエクセルを開いて閉じることになるので、効率が悪くなります。
そこでオススメなのが、最初にエクセルを開くときに「開きっぱなし」の設定にしておくことです。
最初に「開きっぱなし」にしておけば、2回目も3回目も何回目でも、すでに開いているエクセルに対して操作ができるようになります。
また、エクセルを開くときに起こりそうな競合のエラーも減るのでオススメです。
一度意識して覚えてしまえば、次からは忘れず実装できると思うので、ぜひ覚えてください。
【UiPath】Excelを「開いたまま」にしておく方法
まずは全体の流れ
まずは全体の流れから。
では詳細に見ていきましょう。
1回目、出力ブックを指定する
1回目には、いつも通りファイルのパスを指定します。
そして、次が重要!
出力の「ブック」に変数を入力してください。
「ブック」の変数の型は「WorkbookApplication」という型です。
聞きなれない型かもしれません。
プロパティ上で変数を作れば勝手にその型になってくれるので、特に覚える必要はないです。
次からはこの「ブック」の変数を使って、同じエクセルを操作することになります。
2回目からは、出力ブックを使う
さて、2回目以降に進めます。
1回目と違う点は、
・「ブックパス」は空のまま
・「出力ブック」も空のまま
・「既存のブック」に、1回目で「出力ブック」に指定した変数を入力する
です。
こうすれば、同じエクセルを再び開くことなく、すでに開いているエクセルに対して操作ができるようになります。
ずっと開きっぱなしにしていることで、ロボットの途中で他の誰かに編集されてしまうことも防げるます。
最後に、ブックを閉じる
もうエクセルを使わなくなったら、そこで1度だけ、開きっぱなしにしているエクセルを閉じます。
閉じるときは「ブックを閉じる」を使います。
これで、何度も無駄にファイルを開く必要がなくなります。
注意すること
このように、同じエクセルを開きっぱなしで何回も操作する場合、「Excelアプリケーションスコープ」を何度も使うことになるわけですが、1つだけ注意が必要です。
それは、プロパティのオプション設定です。
例えば、「可視」や「変更を保存」などのプロパティがありますよね。
これらの設定は、一番最初の「Excelアプリケーションスコープ」の設定が優先されます。
例えば、最初の「Excelアプリケーションスコープ」で「可視=False」にしていたら、2回目以降の「Excelアプリケーションスコープ」で「可視=true」にしても、「可視=False」となってしまいます。
なので、一番最初に開くときに、意識して設定するようにしましょう。
まとめ
「ブック」に変数を入れない場合はアクティビティを抜けるとエクセルが閉じてしまいますが、出力変数を入れておけば、このように、エクセルは「開きっぱなし」になるんですね。
まとめておきます。
同じエクセルを何度も操作するときは、
①1回目は
・「ブックパス」を指定
・出力の「ブック」に変数を指定
②2回目からは
・「ブックパス」は空白
・「既存のブック」に、1回目に開いた変数を指定
③最後に「ブックを閉じる」でエクセルを閉じる
ぜひ、活用してください。