« 文字列の繰り返し関数はないの? | トップページ | バッチファイルなどをショートカットで非表示実行する。 »

2007年5月 6日 (日)

参照が残って終了しないExcelを優しく終了させる。

.NETとCOMの相性の悪さから、終了しないExcelが残ることがあります。
このExcelを外部からTerminateProcess()で強制終了するのではなく、
もっと穏やかに自らExitProcess()させます。

Set Application=GetObject(,"Excel.Application")
Visible=Application.Visible
Application.Visible=True
StatusBar=Application.StatusBar
Application.StatusBar="このExcelを終了しますか?"
If vbOk=MsgBox("このExcelを終了しますか?"&vbTab,vbExclamation+vbOkCancel,WScript.ScriptName) Then
  Application.ExecuteExcel4Macro "CALL(""Kernel32"",""ExitProcess"",""JJ"",999)"
End If
Application.StatusBar=StatusBar
Application.Visible=Visible

« 文字列の繰り返し関数はないの? | トップページ | バッチファイルなどをショートカットで非表示実行する。 »