Excelが閉じられた後、Windowsタスクで実行されているプロセスを終了するExcel VBAでマクロを記述する必要があります。イベントworkbook_BeforeCloseでこれをやってみました
Private Sub Workbook_BeforeClose(CANCEL As Boolean)
Run "MacroCloseProcess"
End Sub
MacroCloseProcess が次のように定義されている場合
Private Sub MacroCloseProcess()
Dim oWMT As Object, oProcess As Object
Set oWMT = GetObject("winmgmts://")
For Each oProcess In oWMT.InstancesOf("Win32_Process")
If (oProcess.name) = pWcfHostApp Then
If oProcess.Terminate() = 0 Then Exit Sub
End If
Next
End Sub
これは機能しますが、ワークブックに変更が加えられた場合、Excel はユーザーに "'Sheet1.xlsx' に加えた変更を保存しますか? 保存する、保存しない、キャンセルする] オプションを提供します。
ユーザーが [キャンセル] をクリックすると、Excel は終了しませんが (設計どおり)、「BeforeClose」イベントにあったため、プロセスは終了しました。Excelが閉じた後にヒットするようにこのコードを書くにはどうすればよいですか?