Microsoft.Office.Interop.Excel.WorkbookClass.ResetColors() の Excel オートメーション/Office Interop に関するエラー
-
16-09-2019 - |
質問
私は、何千もの 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 にあることを願っています。Googleで調べましたが、役立つものは見つかりませんでした。
解決
これは、ワークステーションごとに異なるカラー パレットに関するある種の問題に関連している可能性があります。おそらく、攻撃的な xls を作成した人が非標準のパレットを使用していたのでしょう。
この投稿をチェックしてみてはいかがでしょうか:
Font.Color を設定するときの Excel 2007 VSTO プラグインの例外
所属していません StackOverflow