Read Rangeアクティビティでのエラー

excel

#1

40ファイル以上あるフォルダからExcelを順次読み込む処理を実装しているのですが、
ForEachでExcel Application Scopeを回し、Read Rangeで範囲指定なしでシートの内容を読み込んでいます。

10ファイル目で必ず以下のエラーが発生してしまうのですが、回避策等ありましたらご教示いただけないでしょうか。

範囲外です。 (HRESULT からの例外:0x8002000A (DISP_E_OVERFLOW))


#2

10ファイル目で必ず以下のエラーが発生してしまうのですが

まずは問題の切り分けだと思います。Excel操作関連がおかしいのか、Excelの該当ファイルに何かしらの問題があるのかを判断する必要があるからです。

その「10ファイル目のファイル」を最初に読まれるようにしてもエラーが出るのか。
あるいは内容に関係なく、必ず10ファイル目でエラーが出るのか。
そのあたりを試してみてください。

可能性としては前者ではないかな、という気がしますが……。


#3

ご連絡ありがとうございます。

エラーが発生した1ファイルをフォルダに格納して処理した場合はエラーが発生しないため、ファイルには問題ないと考えております。


#4

ご指摘の通り前者のようにファイルを先頭に持ってきた場合でもフォルダ内のファイル数が多いとオーバーフローのエラーが発生いたしました。


#5

だとするとフロー側の問題ですね……

1つの可能性として、Excel Application Scopeの外側、For Eachの内側に、5秒ぐらいのDelayを入れてみてください。
通常だとScopeから出たらExcelは終了されるのですが、終了処理が終わらないうちに次のExcelファイルが開かれると、Excelのアプリケーション自体は残ってしまう状態になります。
なので、一旦確実にExcelを終了させてどうなるかが少し鍵になるかもしれません。
(Excelだとあまり経験してないのですが、IE等、同じCOMインターフェース経由で処理するアプリでは似たような現象を見たことがあります)