ファイルが破損している、ファイルが既に別のプロセスで使用されている、またはファイルを開く権限がない。

お世話になっております。
Excelファイルを開き、データを抜き取り、データテーブルへ転記するという150回程の繰り返し処理を行っているのですが、こちらの繰り返し処理が始まり4分程経過すると、以下のエラーで止まります。
image
繰り返しの最後に、待機2秒を入れたり、ブックを閉じる を入れてみましたが、結果は同じでした。

エラー回避方法を教えて頂きたく、よろしくお願い致します。

こんにちは

Excelアプリケーションスコープはプロセスの制御が下手なので、可能であれば
モダンエクセルのエクセルプロセススコープをループの外側において、
ループの内側、エクセルアプリケーションスコープの代わりに
エクセルファイルを使用アクティビティを使う方が良いかと思います。

なお実行までにexcelのゾンビプロセスがいるかもしれませんので
タスクマネージャーの詳細画面から不要なexcelを削除する(あるいはOSの再起動)等を
しておいた方が良いかもしれません。

1 Like

Yoichi様

いつもありがとうございます。
教えて頂いた通り作成し、PCを再起動後、実行しましたが、同じエラーとなりました。
実行できる時間が増えていました。
Excelファイルを使用の中が、Excelアプリケーションスコープから移設しただけで、モダンになっていないので、それが原因??ですので、
明日、再度作り直します。
取り急ぎ、お礼と現状報告を申し上げます。

こんにちは

エクセルファイルを読み込むところのエラーですので、中のアクティビティはあまり関係ないように
思えます。
エラーの発生するファイルは特定のファイルでしょうか?あるいは、実行するたびにエラーの出るファイルが変わりますでしょうか?
もし特定のファイルでしたら、そのファイルが破損していないか等、詳細を確認した方が良いかもしれません。

1 Like

xamlに切り出してみるとか…

引数はrowを渡すのではなく、string型にして、分離(だっけ?)をチェックオンにして、プロセスを独立させてみるとか…

1 Like

Yoichi様

いつもありがとうございます。
説明が悪く申し訳ございませんでした。
1つのファイルでシート違いを繰り返し処理しておりました。
そのため、同じファイルとなります。
何も改良していないのに、先程実行すると、なぜかエラーが出ませんでした。

HANACCHI様

おはようございます。
ありがとうございます。
私の知識不足で、アドバイス頂いた内容が、、理解出来ませんでした。。。

1 Like

@miwa_yamamoto

お疲れ様です。

ファイルが破損していましたの可能性がありますから新しいファイルを作って中身をコピーしてみてください。再作成が助けた時は前にありました。

1 Like

GT_Ropa様

ありがとうございます。
シートがたくさんあるのですが、シートをそのままコピーしてファイルの再作成として間違いないでしょうか。

最初のPOSTのworkflowを見ると、ExcelAplicationScopeのファイル名指定で
DataTableの「ファイル名1」列からファイル名をとってきているので、
同じでは無いように思えますが、これらがすべて同一という事でしょうか?

もしそうであれば、同じファイルを処理する限りは、ワークブックを閉じないように
処理を変更した方が良いかと思います。

1 Like

Yoichi様
いつもありがとうございます。
繰り返しの元データを作る際、大元のデータからファイル名一致でフィルタを掛け、
その中で繰り返している為、同一ファイル名になります。
説明不足で申し訳ございません。

こちらのチェックをオンするということでしょうか。

@miwa_yamamoto

一番いい再作成方法は手動でシートを作成して、レンジをコピーすると思いますが、全体のシートコピーして試せばもいいと思います。

1 Like

GT_Ropa様
ありがとうございます!

取り急ぎ

エクセルファイルを使うの「開いたままにする」をONにして、内部のワークブックを閉じるアクティビティを削除してみてください。

1 Like

Yoichi様

いつもありがとうございます。
なるほどです!
ありがとうございます!

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.