Discussion:
VB6からExcelのPasteSpecialメゾットを実行するとExcelプロセスが解放されない。
(too old to reply)
teraman
2005-06-01 07:38:01 UTC
Permalink
初めて投稿させていただきます。
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
Kaoru Kodaka
2005-06-01 10:06:37 UTC
Permalink
$B$+$*$/(B $B$G$9!#(B

$B!tH>3Q%+%J$O;_$a$^$7$g$&!#(B

On Wed, 1 Jun 2005 00:38:01 -0700
Post by teraman
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
xlNewBook.SaveAs "C:\B.xls"
$B",(B $B$N9T$r%3%a%s%H%"%&%H$7$F$_$F$/$@$5$$!#(B

---
MVP kaok = MVP.ChangeMvpCategory("for C# 2004-2005.");
kaok.Web = "http://www.antoine.st/";

Loading...