tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルExcelプロセスの終了処理
記事No4361
投稿日: 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プロセスは終了します。
わかる方お願いします。<(_ _)>

[ツリー表示へ]
タイトルRe: Excelプロセスの終了処理
記事No4362
投稿日: 2006/10/01(Sun) 18:24
投稿者花ちゃん
No.4350 のレスと同じですね。

[ツリー表示へ]
タイトル解決しました。
記事No4363
投稿日: 2006/10/01(Sun) 18:53
投稿者Jinks
解決しました<(_ _)>
見落としていました、すみませんです。<(_ _)>

[ツリー表示へ]