tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Excelプロセスの終了処理
投稿日: 2006/10/01(Sun) 16:42
投稿者Jinks
はじめまして<(_ _)>
Jinksといいます。

このサイトは良く使用させてもらってます。<(_ _)>
VB.NETでどうしても解らないところが出ましたので質問します。

Excelプロセスが終了しなくて、
このサイトにある例を参考にプログラムを組みなおしたのですが、
どうしてもExcelフォントを「Bold」にするプログラムを組むとプロセスが残ってしまします。

<ソース>(一部を抜粋してます。)
Sub ExcelPrint()
  Dim xlApp As Microsoft.Office.Interop.Excel.Application
  Dim xlBooks As Microsoft.Office.Interop.Excel.Workbooks
  Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
  Dim xlSheets As Microsoft.Office.Interop.Excel.Sheets
  Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
  Dim xlCells As Microsoft.Office.Interop.Excel.Range
  Dim xlRange As Microsoft.Office.Interop.Excel.Range

 xlApp = New Microsoft.Office.Interop.Excel.Application
  xlBooks = xlApp.Workbooks
  xlBook = xlBooks.Open("D:\Excel.xls")
  xlSheets = xlBook.Worksheets
  xlSheet = xlSheets.Item("印字シート")
  xlCells = xlSheet.Cells

 xlRange = xlCells(1, 1)
 xlRange.Font.Bold = True
 Call AppNothing_SW(xlRange)

 Call AppNothing_SW(xlCells)
  Call AppNothing_SW(xlSheet)
  Call AppNothing_SW(xlSheets)        
  xlBook.Close(False)            
  Call AppNothing_SW(xlBook)        
  Call AppNothing_SW(xlBooks)          
  xlApp.Quit()                    
  Call AppNothing_SW(xlApp)    
End Sub  

Sub AppNothing_SW(ByRef objCom As Object)
  Dim I As Integer

  Try
   If Not objCom Is Nothing AndAlso System.Runtime.InteropServices. _
       Marshal.IsComObject(objCom) Then
    Do
     I = System.Runtime.InteropServices.Marshal.ReleaseComObject(objCom)
    Loop Until I <= 0
  End If
   Catch
   Finally
   objCom = Nothing
 End Try
End Sub    

パソコン環境は
OS:WinXP
VBVar:VB.NET2003
Excel:Office2003
です。

ちなみに、「xlRange.Font.Bold = True」をコメントアウトすると、
正常にExcelプロセスは終了します。
わかる方お願いします。<(_ _)>

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。