|
あまり実用的ではないかもしれませんが紹介します。APIを使う方法もありますが、ここではShell関数を利用します。
Sub 電源を切る()
If ThisWorkbook.Saved = False Then
Select Case MsgBox("'" & ThisWorkbook.Name & "' への変更を保存しますか?", vbYesNoCancel + vbExclamation)
Case vbYes
ThisWorkbook.Save
Case vbNo
ThisWorkbook.Saved = True
Case vbCancel
Exit Sub
End Select
End If
Call Shell("C:¥WINDOWS¥RUNDLL.EXE USER.EXE,ExitWindows")
End Sub
Sub 再起動する()
If ThisWorkbook.Saved = False Then
Select Case MsgBox("'" & ThisWorkbook.Name & "' への変更を保存しますか?", vbYesNoCancel + vbExclamation)
Case vbYes
ThisWorkbook.Save
Case vbNo
ThisWorkbook.Saved = True
Case vbCancel
Exit Sub
End Select
End If
Call Shell("C:¥WINDOWS¥RUNDLL.EXE USER.EXE,ExitWindowsExec")
End Sub
APIを使うよりこちらの方が単純ではあります。Windowsのセットアップフォルダが違っている場合は修正してください。 |