Excelのコマンドで奇妙な動作が検出されました。Excel Application.QuitでEXECL.EXEプロセスが終了しない
以下のVBScriptスクリプトは、この問題を再現します。ここでQuit
エクセル
- が
- 開く新しいExcelインスタンスを作成し、(
WorkbooksToCreate
によって制御される)ワークブックのセット数を閉じないものですし、それは本当にエクセルかどうかを証明していますVisible
の状態をTrueに戻して終了しました
私が収集したことは、Quit
がWorkbooksToCreate
は0または1に設定されます.2以上に設定すると、Excelは正常に終了しません。私はWindows 7の
にエクセル2010を使用してい
'Switch this between 1 and 2 to see the difference
'(1 = quit correctly, 2 = quit only changes the .visible to false)
Const WorkbooksToCreate = 2
'Create new Excel Instance
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
'Add, and then close workbooks
For w = 1 to WorkbooksToCreate
Set WB = xlApp.Workbooks.Add
WB.Close False
Next
'Attempt to Quit Excel
xlApp.Quit
'Test it really did quit
xlApp.Visible = True
Set xlApp = Nothing
私はこの上の多数のバリエーションを試してみたが、問題が何であるかを確立することはできません。この場合、xlApp.Quit
はすべてxlApp.Visible = False
と同等であることがわかります。もし皆さんの運が良ければ誰にも分かりますか?
おかげですべてのマシンでは発生しません、これを識別するための@omegastripesと@Mikegrannへ
ん[このスレッド](http://stackoverflow.com/a/26303330/4650297)任意のを助けますか? – BruceWayne
ループが動作する前に小さなポーズを置くのが好きです。このインスタンスで複数のワークブックを作成する速度がExcelをハングアップするのではないかと思います。 @BruceWayne。 –
。私はそのようにできることを知っています。しかし、なぜ誰かが2つのブックを開くことが1つを開くか、または2つのブックを開くことと異なるのかを説明することができれば、さらに、プロセスIDを知らなくても、開かれたものとは異なるExcelのインスタンスが閉じる可能性があります。ありがとう – Skytunnel