【UiPath特集】Case 3:「ファイルが使用中です」の怪奇現象~見えないExcelを成仏させる方法~

こんにちは!UiPath メンターです。

ロボット作りにも慣れてきた頃、こんな不気味な現象に遭遇しませんか?

プロセスがファイル ‘xxx.xlsx’ にアクセスできません。別のプロセスが使用中です。

「えっ?Excelなんて開いてないよ?」
画面を見渡しても、タスクバーを見ても、Excelはどこにもいません。
しかし、もう一度ロボットを動かしても同じエラーで止まってしまう……。

この現象の正体は、「ゾンビプロセス」です。
前回のエラー終了時に死にきれなかったExcelが、裏側(バックグラウンド)で幽霊のようにファイルを握り続けているのです。

診察1:タスクマネージャーで「犯人」を確保する

まずは、見えない犯人を目視してみましょう。

  1. Windowsのタスクバー(画面下の黒い帯)を右クリックし、[タスク マネージャー] を開きます。
  2. [詳細] タブを開いてみてください。
  3. リストの中に EXCEL.EXE という名前がありませんか?

画面には何も映っていないのに、ここにはいる。これが「ゾンビプロセス」です。
これを選択して [タスクの終了] ボタンを押せば、強制的に成仏(終了)させることができ、ファイルロックも解除されます。

処方箋A:モダンデザインの「プロセス スコープ」を使う

毎回タスクマネージャーを開くのは面倒ですよね。
実は、本編の第7回で紹介した[Excel プロセス スコープ (Excel Process Scope)] は、このゾンビ化を防ぐための最強の魔除けアイテムなのです。

このアクティビティには、以下の機能が備わっています。

  • ロボットが動く前に、ゾンビExcelがいないかチェックする。
  • ロボットが終わったら、きれいにExcelを終了させる。
  • 万が一エラーで止まっても、強制的にExcelを片付ける。

クラシックデザイン(昔のやり方)ではゾンビが頻発しましたが、モダンデザインで「プロセススコープ」を使っている限り、この悩みからはほぼ解放されます。

処方箋B:強硬手段「プロセスを強制終了」

もし、プロセススコープを使っても解決しない場合や、他のアプリ(Chromeなど)が固まってしまう場合は、ロボットの冒頭で「掃除」をしてしまいましょう。

[プロセスを強制終了 (Kill Process)] というアクティビティを使います。

手順

  1. ワークフローの一番最初(Startの直後)に配置します。
  2. [プロセス名] の欄に "excel" と入力します。
    ※ダブルクォーテーションを忘れずに!拡張子(.exe)はいりません。

これを置いておくと、ロボットは動き出す瞬間に「今動いている全てのExcelを抹殺」してから処理を始めます。
これなら絶対に「使用中」エラーは起きません。

⚠️ 注意:諸刃の剣です!

"excel" をKillすると、あなたが別の仕事で開いていた「書きかけのExcel」も問答無用で消されてしまいます(保存されません!)。
自分のPCで動かすロボットにこの機能を入れる時は、十分に注意してください。
Chromeを消したい場合は "chrome" と指定します。

まとめ:ゾンビを作らないために

  • 見えないExcel(ゾンビ)がファイルをロックしているのが原因。
  • [Excel プロセス スコープ] を使っていれば基本的には安心。
  • どうしようもない時は [プロセスを強制終了] でリセットする(ただし使用上の注意あり)。

💡 メンターからの豆知識:プレビュー画面の罠

Excelは開いていないのに、フォルダ(エクスプローラー)でファイルを選択した状態だとエラーになることがあります。
これはフォルダの「プレビューウィンドウ」機能がファイルを読み込んでいるからです。
ロボットを実行する時は、フォルダを閉じるか、プレビュー機能をOFFにしておきましょう。

次回はCase 4、「Excelの範囲指定がうまくいかない」問題。
「ヘッダーが2行になってる表はどうするの?」「読み込んだデータがずれる!」といった、Excelの形にまつわる悩みを解決します!

タイトルとURLをコピーしました