質問編集履歴
4
コメント位置修正
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オブジェクトを取得して
|
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
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#タグ追加
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
COM(Microsoft Excel) で Err オブジェクトを得る方法
|
1
|
+
COM(Microsoft Excel) で Err オブジェクトを得る方法 (.NET Framework, C#)
|
test
CHANGED
File without changes
|
1
InnerException
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
|
|