質問編集履歴

4

コメント位置修正

2017/07/14 01:19

投稿

hsk
hsk

スコア728

test CHANGED
File without changes
test CHANGED
@@ -24,6 +24,8 @@
24
24
 
25
25
  //...処理
26
26
 
27
+
28
+
27
29
  wb.Close();
28
30
 
29
31
  Marshal.ReleaseComObject(wb);
@@ -36,9 +38,9 @@
36
38
 
37
39
  {
38
40
 
41
+ // ex.InnerException は null
42
+
39
43
  var errObj = Microsoft.VisualBasic.Information.Err();
40
-
41
- // ex.InnerException は null
42
44
 
43
45
  Console.WriteLine(errObj.Description); // errObj.Description は空白
44
46
 
@@ -60,11 +62,11 @@
60
62
 
61
63
 
62
64
 
63
- のように、COMExceptionが発生したら、VBAエンジンのErrオブジェクトを取得してVB的なエラーメッセージを取得したいのです。
65
+ のように、COMExceptionが発生したら、VBAエンジンのErrオブジェクトを取得してVB的なエラーメッセージを取得したいのです。
64
66
 
65
67
 
66
68
 
67
- "//...処理" の箇所でAutoFilter処理などをさせたとき、パソコンによって成功したり失敗したりしていて、失敗したときは "HRESULT からの例外:0x800A03EC" が発生します。
69
+ "//...処理" の箇所でAutoFilter処理などをさせたとき、パソコンによって成功したり失敗したりしていて、失敗したときは "HRESULT からの例外:0x800A03EC" が発生しています。
68
70
 
69
71
  このときの VBA の Err オブジェクトを得たいのですが、方法を調べても見つかりません。
70
72
 

3

finally

2017/07/14 01:19

投稿

hsk
hsk

スコア728

test CHANGED
File without changes
test CHANGED
@@ -30,12 +30,6 @@
30
30
 
31
31
  wb = null;
32
32
 
33
- app.Quit();
34
-
35
- Marshal.ReleaseComObject(app);
36
-
37
- app = null;
38
-
39
33
  }
40
34
 
41
35
  catch(System.Runtime.InteropServices.COMException ex)
@@ -47,6 +41,18 @@
47
41
  // ex.InnerException は null
48
42
 
49
43
  Console.WriteLine(errObj.Description); // errObj.Description は空白
44
+
45
+ }
46
+
47
+ finally
48
+
49
+ {
50
+
51
+ app.Quit();
52
+
53
+ Marshal.ReleaseComObject(app);
54
+
55
+ app = null;
50
56
 
51
57
  }
52
58
 

2

C#タグ追加

2017/07/14 01:16

投稿

hsk
hsk

スコア728

test CHANGED
@@ -1 +1 @@
1
- COM(Microsoft Excel) で Err オブジェクトを得る方法
1
+ COM(Microsoft Excel) で Err オブジェクトを得る方法 (.NET Framework, C#)
test CHANGED
File without changes

1

InnerException

2017/07/14 01:15

投稿

hsk
hsk

スコア728

test CHANGED
File without changes
test CHANGED
@@ -44,7 +44,9 @@
44
44
 
45
45
  var errObj = Microsoft.VisualBasic.Information.Err();
46
46
 
47
+ // ex.InnerException は null
48
+
47
- Console.WriteLine(errObj.Description);
49
+ Console.WriteLine(errObj.Description); // errObj.Description は空白
48
50
 
49
51
  }
50
52