
お世話になっております。
調べて見つけることができませんでしたので、ご存知の方がいらっしゃいましたら、ご教示くださると助かります。
C# で Excel COM (15.0 Object Library) を参照させて、アプリケーションを作成しています。
C#
1var app = new Microsoft.Office.Interop.Excel.Application(); 2 3try 4{ 5 var wb = app.Open(fileName); 6 7 //...処理 8 9 wb.Close(); 10 Marshal.ReleaseComObject(wb); 11 wb = null; 12} 13catch(System.Runtime.InteropServices.COMException ex) 14{ 15 // ex.InnerException は null 16 var errObj = Microsoft.VisualBasic.Information.Err(); 17 Console.WriteLine(errObj.Description); // errObj.Description は空白 18} 19finally 20{ 21 app.Quit(); 22 Marshal.ReleaseComObject(app); 23 app = null; 24}
のように、COMExceptionが発生したら、VBAエンジンのErrオブジェクトを取得してVB的なエラーメッセージを取得したいのです。
"//...処理" の箇所でAutoFilter処理などをさせたとき、パソコンによって成功したり失敗したりしていて、失敗したときは "HRESULT からの例外:0x800A03EC" が発生しています。
このときの VBA の Err オブジェクトを得たいのですが、方法を調べても見つかりません。
「Microsoft.VisualBasic.Information.Err();でErrオブジェクトを得られる」と書かれているものを見つけたので試してみると、(VBAではないので当然ですが)上記コードの errObj.Description の中身は空です。
C# (COM VBA) での Err オブジェクトを得る方法をご教示いただきたく思います。
回答1件
あなたの回答
tips
プレビュー