こんにちは!UiPath メンターです。
ロボット作りにも慣れてきた頃、こんな不気味な現象に遭遇しませんか?
「えっ?Excelなんて開いてないよ?」
画面を見渡しても、タスクバーを見ても、Excelはどこにもいません。
しかし、もう一度ロボットを動かしても同じエラーで止まってしまう……。
この現象の正体は、「ゾンビプロセス」です。
前回のエラー終了時に死にきれなかったExcelが、裏側(バックグラウンド)で幽霊のようにファイルを握り続けているのです。
診察1:タスクマネージャーで「犯人」を確保する
まずは、見えない犯人を目視してみましょう。
- Windowsのタスクバー(画面下の黒い帯)を右クリックし、[タスク マネージャー] を開きます。
- [詳細] タブを開いてみてください。
- リストの中に EXCEL.EXE という名前がありませんか?
画面には何も映っていないのに、ここにはいる。これが「ゾンビプロセス」です。
これを選択して [タスクの終了] ボタンを押せば、強制的に成仏(終了)させることができ、ファイルロックも解除されます。
処方箋A:モダンデザインの「プロセス スコープ」を使う
毎回タスクマネージャーを開くのは面倒ですよね。
実は、本編の第7回で紹介した[Excel プロセス スコープ (Excel Process Scope)] は、このゾンビ化を防ぐための最強の魔除けアイテムなのです。
このアクティビティには、以下の機能が備わっています。
- ロボットが動く前に、ゾンビExcelがいないかチェックする。
- ロボットが終わったら、きれいにExcelを終了させる。
- 万が一エラーで止まっても、強制的にExcelを片付ける。
クラシックデザイン(昔のやり方)ではゾンビが頻発しましたが、モダンデザインで「プロセススコープ」を使っている限り、この悩みからはほぼ解放されます。
処方箋B:強硬手段「プロセスを強制終了」
もし、プロセススコープを使っても解決しない場合や、他のアプリ(Chromeなど)が固まってしまう場合は、ロボットの冒頭で「掃除」をしてしまいましょう。
[プロセスを強制終了 (Kill Process)] というアクティビティを使います。
手順
- ワークフローの一番最初(Startの直後)に配置します。
- [プロセス名] の欄に
"excel"と入力します。
※ダブルクォーテーションを忘れずに!拡張子(.exe)はいりません。
これを置いておくと、ロボットは動き出す瞬間に「今動いている全てのExcelを抹殺」してから処理を始めます。
これなら絶対に「使用中」エラーは起きません。
⚠️ 注意:諸刃の剣です!
"excel" をKillすると、あなたが別の仕事で開いていた「書きかけのExcel」も問答無用で消されてしまいます(保存されません!)。
自分のPCで動かすロボットにこの機能を入れる時は、十分に注意してください。
Chromeを消したい場合は "chrome" と指定します。
まとめ:ゾンビを作らないために
- 見えないExcel(ゾンビ)がファイルをロックしているのが原因。
- [Excel プロセス スコープ] を使っていれば基本的には安心。
- どうしようもない時は [プロセスを強制終了] でリセットする(ただし使用上の注意あり)。
💡 メンターからの豆知識:プレビュー画面の罠
Excelは開いていないのに、フォルダ(エクスプローラー)でファイルを選択した状態だとエラーになることがあります。
これはフォルダの「プレビューウィンドウ」機能がファイルを読み込んでいるからです。
ロボットを実行する時は、フォルダを閉じるか、プレビュー機能をOFFにしておきましょう。
次回はCase 4、「Excelの範囲指定がうまくいかない」問題。
「ヘッダーが2行になってる表はどうするの?」「読み込んだデータがずれる!」といった、Excelの形にまつわる悩みを解決します!