1

Excel VBA(Windows 7の2010)についてサポートが必要です。私がやろうとしているのは、Excelを閉じてからPCをシャットダウンすることです。私が持っているコードは次のとおりです。

Declare Function ExitWindowsEx& Lib "User32" (ByVal uFlags As Long, ByVal dwReserved AS Long)
Global Const EWX_LOGOFF = 0
Global Const EWX_FORCE = 4

....Main Code Here ....

Application.DisplayAlerts = False
Application.Quit

Action = ExitWindows(EWX_LOGOFF or EWX_FORCE, 0)

断続的に次のエラーが発生します。

MicrosoftExcelを終了できません

ただし、マシンはまだログオフします。これは私が望んでいることなので、大きな問題ではありません。きれいに終了したいだけです。Windowsからのプロンプトが表示されたくないので、EWX_FORCEを保持しました。助言がありますか?

4

1 に答える 1

0

たぶんDoEvents後に行方不明?Application.QuitExcel が閉じるのに十分な時間を確保できるように、それを含めます。そうしないと、エラーが発生します。ところで、これは私にとってはうまくいきました。

また、ワークブックが開いている場合は、データを失う可能性があるため、コードを保存して/保存せずに閉じることをお勧めします。

Public Declare Function ExitWindowsEx Lib "user32" (ByVal dwOptions As Long, _
ByVal dwReserved As Long) As Long

Public Const EWX_LogOff As Long = 0
Public Const EWX_SHUTDOWN As Long = 1
Public Const EWX_REBOOT As Long = 2
Public Const EWX_FORCE As Long = 4

Sub Sample()
    '
    '~~> Main Code Here
    '
    Application.DisplayAlerts = False
    Application.Quit

    DoEvents

    ExitWindowsEx EWX_LogOff Or EWX_FORCE, &HFFFF
End Sub
于 2012-07-12T10:02:59.957 に答える