teraman
2005-06-01 07:38:01 UTC
初めて投稿させていただきます。
VB6でExcelを制御するプログラムを作成していますが、
エクセルアプリケーションオブジェクトのPasteSpecialメゾット を実行したあと、
Excelを閉じるとExcelプロセスが残ったままで解放されません。
どのように解決したらよいか教えていただけないでしょうか?
VB6でのスクリプトサンプルは以下の例の通りです。
' コマンド1でExcelブックを開きます。
' コマンド2でPasteSpecial を実行します。(このステップを実行しない場合問題ない。)
' コマンド3でExcelを閉じます。
Option Explicit
'エクセルオブジェクト
Private xlNewApp As Excel.Application
Private xlNewBook As Excel.Workbook
Private xlNewSheet As Excel.Worksheet
Private Sub Command1_Click()
Set xlNewApp = New Excel.Application
xlNewApp.Visible = True
xlNewApp.WindowState = xlNormal
xlNewApp.DisplayAlerts = False
Set xlNewBook = xlNewApp.Workbooks.Open("C:\A.xls")
xlNewBook.SaveAs "C:\B.xls"
End Sub
Private Sub Command2_Click()
Set xlNewSheet = xlNewBook.Sheets("Sheet1")
xlNewSheet.Range("A1:E5").Copy
'--------------------------------------------------
'この処理を実行すると、EXCELプロセスが解放されない問題がある。
xlNewSheet.Cells(10, 10).PasteSpecial Paste:=xlPasteFormats
'---------------------------------------------------
xlNewApp.CutCopyMode = False
End Sub
Private Sub Command3_Click()
xlNewBook.SaveAs "C:\B.xls"
xlNewApp.Quit
Set xlNewApp = Nothing
Set xlNewBook = Nothing
Set xlNewSheet = Nothing
End Sub
VB6でExcelを制御するプログラムを作成していますが、
エクセルアプリケーションオブジェクトのPasteSpecialメゾット を実行したあと、
Excelを閉じるとExcelプロセスが残ったままで解放されません。
どのように解決したらよいか教えていただけないでしょうか?
VB6でのスクリプトサンプルは以下の例の通りです。
' コマンド1でExcelブックを開きます。
' コマンド2でPasteSpecial を実行します。(このステップを実行しない場合問題ない。)
' コマンド3でExcelを閉じます。
Option Explicit
'エクセルオブジェクト
Private xlNewApp As Excel.Application
Private xlNewBook As Excel.Workbook
Private xlNewSheet As Excel.Worksheet
Private Sub Command1_Click()
Set xlNewApp = New Excel.Application
xlNewApp.Visible = True
xlNewApp.WindowState = xlNormal
xlNewApp.DisplayAlerts = False
Set xlNewBook = xlNewApp.Workbooks.Open("C:\A.xls")
xlNewBook.SaveAs "C:\B.xls"
End Sub
Private Sub Command2_Click()
Set xlNewSheet = xlNewBook.Sheets("Sheet1")
xlNewSheet.Range("A1:E5").Copy
'--------------------------------------------------
'この処理を実行すると、EXCELプロセスが解放されない問題がある。
xlNewSheet.Cells(10, 10).PasteSpecial Paste:=xlPasteFormats
'---------------------------------------------------
xlNewApp.CutCopyMode = False
End Sub
Private Sub Command3_Click()
xlNewBook.SaveAs "C:\B.xls"
xlNewApp.Quit
Set xlNewApp = Nothing
Set xlNewBook = Nothing
Set xlNewSheet = Nothing
End Sub