掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
タスクマネージャにExcelプロセスが残ってしまう (ID:148167)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
まさお と申します。 宜しくお願い致します。 WinXP Pro SP3,VB2010 Express SP1 .NET Framework 4 MS-Office Excel2003 SP3,Word2003 SP3 です。 下記コードであるファイルを開くと次のエラーになりタスクマネージャに Excelプロセスが残ってしまいます。 ※エラー発生ファイル詳細は最後尾に記しました。 【エラー内容】 System.Runtime.InteropServices.COMException サーバーによって例外が返されました。 (HRESULT からの例外: 0x80010105 (RPC_E_SERVERFAULT)) エラーが発生するのは良いのですがExcelプロセスが残ってしまうので困っています。 Excelプロセスが残らないようにする対処方法を教えて戴きたくお願い致します。 ***** 以下コード ***** '参照設定:Microsoft Excel 11.0 Object Library Imports XLS = Microsoft.Office.Interop.Excel Public Class ClassMyExcel Private XL As XLS.Application Private WBs As XLS.Workbooks Private WB As XLS.Workbook Public Sub foo() Dim WBFullPath As String = "c:\hoge.mht" 'Wordで作成した.mhtファイル Try XL = New XLS.Application WBs = XL.Workbooks WB = WBs.Open(Filename:=WBFullPath) WB.Close(SaveChanges:=False) Me.MRComObject(WB) Catch ex As Exception MessageBox.Show(ex.Message) Finally If Not IsNothing(WB) Then WB.Close(SaveChanges:=False) Me.MRComObject(WB) Me.MRComObject(WBs) XL.Quit() Me.MRComObject(XL) End Try MessageBox.Show("Complete") End Sub Private Sub MRComObject(Of T As Class)(ByRef objCom As T) 'http://www.hanatyan.sakura.ne.jp/patio/read.cgi?no=319 を参考にしました。 If objCom Is Nothing Then Return Try If System.Runtime.InteropServices.Marshal.IsComObject(objCom) Then Dim count As Integer = System.Runtime.InteropServices.Marshal.ReleaseComObject(objCom) '.FinalReleaseComObject(でも同じ) If count <> 0 Then Try MessageBox.Show(TypeName(objCom) & " 要調査! デクリメントされていません。") Catch ex As Exception MessageBox.Show("Catch発生 要調査! デクリメントされていません。") End Try End If Else MessageBox.Show("ComObject ではありませんので、解放処理の必要はありません。") End If Finally objCom = Nothing End Try End Sub End Class ***** 以上コード ***** ≪エラー発生ファイル詳細≫ MS-Office Wordから以下のようにして作成しました。 単純な.mhtファイルではエラーは発生しませんが、私の環境では以下でエラー発生ファイルを作成できます。 1)メニュー:ファイル → 新規作成 → 「新しい文書」ダイアログ「Webページ」選択。 2)メニュー:挿入 → テキストボックス → 横書き → 【描画をここに作成します】の枠外にテキストボックスを作成。 3)上記2)で作成したテキストボックスに『1<tab>』と入力。 <tab>はTabキー入力(Microsoft.VisualBasic.ControlChars.Tab)です。 4)上記2),3)を繰り返し。 つまり『文字 & <tab>』のテキストボックスを2つ作ります。 5)ファイルの種類「単一ファイル Webページ(*.mht; *.mhtml)」で保存。 a)上記2)で【描画をここに…】枠内にテキストボックスを作成するとエラー発生しません。 b)テキストボックス一つではエラー発生しません。 c)文字だけ(<tab>無し)ではエラー発生しません。 d)<tab>だけ(文字無し)ではエラー発生しません。 e)一方のテキストボックスが『文字 & <tab>』、もう一方が『<tab>』でエラー発生します。 『何故Wordで作成したWeb用ファイルをExcelで開くのか?』の説明は割愛させてください。 全ての.mhtファイルでエラーになるなら拡張子で判別するのですが、エラーにならない.mhtファイルもあるので 可能ならばExcelで開きたいと考えております。 以上、宜しくお願い致します。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.