これと同じ手法を使用して、何千もの Excel ドキュメントを PDF に変換するアプリケーションを作成しました (これは遅い方法ですが、速度については心配していません) 。ただし、Word ではなく Excel を使用します。
次のコードを追加する必要がありました。
book.ResetColors();
これは Workbook オブジェクトにあります。ほとんどの場合、これで問題なく動作しますが、一部のファイルでは次のエラーが発生します (無関係なビットが出力されます)。
Exception from HRESULT: 0x800A03EC
System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x800A03EC
at Microsoft.Office.Interop.Excel.WorkbookClass.ResetColors()
VBA で Excel マクロを使用して同じことを行うと、次のエラーが発生します。
Run-time error '1004':
Method 'ResetColors' of object '_Workbook' failed
スプレッドシート自体にはマクロ コードはありません。共通しているように見える唯一のことは、シートの数が多いことです。
以前にこれに遭遇した人はいますか? 良い回避策を知っていますか? 現時点では、エラーを検出してファイルを手動で変換することだけを考えています(うん)。理想的には、このメソッド呼び出しが失敗するかどうかを判断するために使用できる何かが API にあることを願っています。私はグーグルを見ましたが、役に立つものは何も見つかりませんでした。