HRESULT からの例外:0x800401A8

いつもお世話になっております。

DTを元に、1つずつExcelファイルを読み取る作業をしています。
現在以下のような形で作成しており、セルを読み込みの後にも処理は続きます。

ファイル名を読み込む回数が1100回程になります。
半分ほどは正常に動くのですが、以下のエラーで止まります。
止まるのは、「範囲を読み込み」「セルを読み込み」のいずれかになります。
待機が必要かと間に5秒待機を入れましたが、エラーになります。
解決方法を教えて頂きたくよろしくお願いいたします。

HRESULT からの例外:0x800401A8
image

こんにちは

EXCELのプロセスを頻繁に起動・終了していることが要因のように思えます。

可能であれば、モダンExcelのExcelProcessScopeで繰り返しを含む全体を囲み、ExcelApplicationScopeの代りにUseExcelFileを使用する。
あるいは
事前に何らかのExcelをExcelApplicationScopeで開いておき、繰り返しの途中でEXCELのプロセスを終了しないようにする
等を試してみてはと思います。

1 Like

Hello @miwa_yamamoto , It may be occurs due to License issue on microsoft excel.
Try to use Workbook read range activity to avoid this issue.

Regards,
Gokul Jai

1 Like

いつもありがとうございます。

こちらでトライさせて頂きます。
処理が1時間以上掛かりますので、終了後また連絡させて頂きたく、取り急ぎお礼申し上げます。

お世話になっております。
1093回繰り返した後、こちらのエラーで止まってしまいました。

image

こんにちは

そのエラーで止まってしまったファイルは、手動で開くことはできますでしょうか?(ファイルのダブルクリック等で)
あるいは、ループを使わずに単独でExcelApplicationScopeやUseExcelFileで開くことはできますでしょうか?

ありがとうございます。

手動や、単独では開くことが出来ます。
ループで1000回を超えたあたりから、動きがおかしくなっています。

@miwa_yamamoto
ブック アクティビティを使用して Excel ファイルを読み取ってみる

こんにちは

となると、メモリリーク等でEXCELのプロセス自体が不安定になっているのかもしれません。

元のExcelAplpicationScopeを使った例で、その直後に以下の条件分岐を追加して、特定条件下で
20-30秒ほど待機させてみてもらえますか?(その時Excelが閉じることを確認してください)(下記の例は100回に1回20-30秒待機します。)iはForEachRowのIndexです。

いつもありがとうございます。
トライさせて頂きます。

処理が1時間以上掛かりますので明日、結果報告させて頂きたく、
取り急ぎお礼申し上げます。

おはようございます。
度々申し訳ございません。
72回目の繰り返しでエラーとなり止まってしまいました。
image

こんにちは

不安定ですね...
最上位のループをうまく分割して、UseExcelFileで100回開いたら、一旦ExcelProcessScopeを抜けるような実装を試してみたいところではありますが、可能そうでしょうか?