■50809 / ) |
Re[8]: Excel(SaveAs)がフ゜ロセスに残る |
□投稿者/ VBねっと (5回)-(2010/06/18(Fri) 14:25:32)
|
■No50808 (よねKEN さん) に返信 > ■No50806 (VBねっと さん) に返信 >>--------------------- VB.net(修正版) -------------------- >> System.Runtime.InteropServices.Marshal.ReleaseComObject(oRange) >> System.Runtime.InteropServices.Marshal.ReleaseComObject(oSheet) >> > > oSheetsの解放がありませんので、まずはそれの追加を・・・ >
忘れていました。 追加したら解決しました。
VB.netではレイトバインドを使うとうまくいくというのが判りました。 VB.netはレイトバインドで実装し直ししますが、VBSがうまくいかないの が気にかかります。
下記のようにQuitの後にSleep 5000を追加すると9/10回はうまくいきます。 VBSで確実にExcelを開放する方法があれば知りたいのですが。。。。。
掲示板とは違う言語の質問になりましたが、これを機会にVBSでもExcelを 動かせるようにしたいと考えています。
----------------------- 改善VBS ----------------------- Dim oBooks Dim oBook Dim oSheets Dim oSheet Dim oRange
'@エクセルオブジェクトを作成します Set oExcel = CreateObject("Excel.Application") Set oBooks = oExcel.Workbooks Set oBook = oBooks.Add Set oSheets= oBook.Sheets Set oSheet = oSheets.item(1) Set oRange = oSheet.Range("A1")
oRange.Value = "hoge"
'Aエクセルを終了します oExcel.DisplayAlerts = false oBook.SaveAs("c:\Book1.xls") oBook.close() oExcel.Quit WScript.Sleep 5000
'オブジェクトの破棄 Set oExcel = Nothing Set oBooks = Nothing Set oBook = Nothing Set oSheets = Nothing Set oSheet = Nothing Set oRange = Nothing
|
|