- - PR -
Null参照の例外
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-10-21 11:28
こんにちは。
VB2005でExcelの操作でNull参照の例外が表示されます。 みなさんならどのようにされますか 教えて下さい。 コードは Dim oXls As Excel.Application Dim oWBook As Excel.Workbook Dim oSheet As Excel.Worksheet oXls = New Excel.Application() Try oWBook = oXls.Workbooks.Open(エクセル名) oSheet = DirectCast(oWBook.Sheets(1), Excel.Worksheet) oWBook.Close(SaveChanges:=True) oXls.Quit() Catch ex As Exception Finally System.Runtime.InteropServices.Marshal.ReleaseComObject(oSheet) System.Runtime.InteropServices.Marshal.ReleaseComObject(oWBook) System.Runtime.InteropServices.Marshal.ReleaseComObject(oXls) End Try です。 このSystem.Runtime.InteropServices.Marshal.ReleaseComObject(oSheet) とSystem.Runtime.InteropServices.Marshal.ReleaseComObject(oWBook) の部分でNull参照の例外が実行時に発生する可能性があります。 と表示されます。 正しく解放されるように Finallyに ReleaseComObjectをコーディングしましたが・・・ ご教授よろしくお願いします。 | ||||||||
|
投稿日時: 2008-10-21 12:06
[ メッセージ編集済み 編集者: Jitta 編集日時 2008-10-21 12:07 ] | ||||||||
|
投稿日時: 2008-10-21 14:10
Jittaさん、ありがとうございます。
If oSheet Is Not Nothing Then System.Runtime.InteropServices.Marshal.ReleaseComObject(oSheet) End If としましたが Isには参照型を持つオペランドが必要ですが このオペランドの値型はIntegerです のエラーになってしまいます。 もう少しご教授頂けないでしょうか? よろしくお願いします。 | ||||||||
|
投稿日時: 2008-10-21 14:32
すいません
If oSheet IsNot Nothing Then System.Runtime.InteropServices.Marshal.ReleaseComObject(oSheet) End If でOKでした。 | ||||||||
|
投稿日時: 2008-10-21 17:37
これと、
これが別の理由でダメですね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1