Du code vaut mieux que des grandes explications :
'Déclaration de l'API
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
'Constantes d'arrêt et de redémarrage
Const EWX_STOP = 1
Const EWX_REBOOT = 2
'Quitte windows
R = ExitWindowsEx(EWX_STOP, 0&)
'Redémarre
R = ExitWindowsEx(EWX_REBOOT, 0&)