0

こちらのご質問と同じ事象になって困っています。

【Excelのプロセスが残ってしまう?】 2018/9/11
https://winactor.com/questions/question/excel%E3%81%AE%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%8C%E6%AE%8B%E3%81%A3%E3%81%A6%E3%81%97%E3%81%E3%81%86%EF%BC%9F/?order_by=active

残プロセスがあることにより、EXCELが読み取り専用(自PCが掴んだままになっている)になっていたり、前回の保存状態がおかしなことになっていたり、EXCEL画面上部のファイル名欄に[ユーザーが前回保存済み]と表記があったりして、困っています。

指定のファイルを個別に閉じた後に、最後「Excel操作(全て閉じる)」が必ず走るようになっています。

回答欄の対策を実施しようとしたところ、ver6.1.0の「Excel操作(全て閉じる)」のスクリプトには、「Set objExec = ~」の記述は無くなっていました。

スクリプト内容の「 ゾンビプロセスを強制的に終了する。」という箇所があやしいですが、どのように直したらいいか、VBSのサイトを調べてもわかりませんでした。

ver6.1.0またはver6.3.0の「Excel操作(全て閉じる)」が使用できるのですが、この2つのバージョンで「 ゾンビプロセスを強制的に終了する。」の記載が一部違いがありましたので、6.3.0のを使用した方が無難なのでしょうか。

実行バージョンは6.3.0で、現在組み込まれている「Excel操作(全て閉じる)」は6.1.0の内容になります。

ver6.3.0

' ゾンビプロセスを強制的に終了する。----------------------------------
Sub ZombieProcessClose(processInfo, excelProcessList)
Dim process
Dim i,j
i = 0
On Error Resume Next
i = UBound(excelProcessList)
If Err.Number <> 0 And Err.Number <> 9 Then
MsgBox "Error:" & Err.Number & ":" & Err.Description
End If
On Error Goto 0

On Error Resume Next ★ ※6.1.0には無い行

For Each process In processInfo
If StrComp(process.Description, "EXCEL.EXE", 1) = 0 Then
If i > 0 And CStr(process.ProcessId) = excelProcessList(1) Then
process.Terminate
End If
End If
Next

On Error Goto 0 ★※6.1.0には無い行

宜しくお願い致します。

anothersolution 回答した質問
回答とコメントは、会員登録(無料)で閲覧できるようになります。