【VBA】시간을 지정해 PC의 셧다운을 실행한다

【타이머 시간을 지정해 매크로를 실행한다】
이번에는 A1 셀에 시간을 입력하고
종료 타이머 버튼으로 매크로를 실행합니다.

버튼을 누르면 "타이머를 설정했습니다"라는 메시지가 나옵니다.
지정된 시간이 오면 "pc_shutdown" 가 실행됩니다.
Sub btnTimer()
    MsgBox "タイマーをセットしました"
    Dim ShutDownTime As String 'タイマー時刻格納用変数
    'A1に入力された時間を変数に格納
    ShutDownTime = Format(TimerSheet.Range("A1").Value, "hh:mm:ss") 
    'シャットダウン処理を呼び出し
    Application.OnTime TimeValue(ShutDownTime), "pc_shutdown" 
End Sub

Sub pc_shutdown()
    ThisWorkbook.Save
    Dim objsystem As Object'オブジェクト格納用変数
    Set objsystem = CreateObject("WScript.Shell")
    'ログオフするの場合は以下にする
    'objsystem.Run "logoff", 0, False
    'シャットダウンの場合は以下にする
    objsystem.Run "shutdown -s", 0, False
    ThisWorkbook.Close
    Application.Quit
End Sub
【실행 결과】

시간이 오면 종료됩니다.
【셧다운인가, 사인 아웃인가? 】
셧다운objsystem.Run "shutdown -s", 0, False로그아웃objsystem.Run "logoff", 0, False전원을 끄고 싶을 때는 셧다운입니다.
최근 와타시는 풀 리모트 근무 때문에 PC는 셧다운이 아니고 사인아웃으로 하지 않으면 안 되므로 업무로 사용하는 PC의 경우는 사인아웃쪽을 사용합니다.
【조금 더 어레인지가 필요】
이번 매크로는 일반적으로 업무에 필요하지 않은 매크로 일 수 있습니다.
이하의 경우는 어레인지가 필요하다고 생각합니다.
· 다른 응용 프로그램이 열려있는 경우
· 실행 5 분 전에 알림을 보내고 싶습니다.
· 경우에 따라 실행을 취소하고 싶습니다.

이번에는 시간 지정으로 실행하는 코드입니다.
와타시는 시간이 걸리는 매크로가 종료하면 셧다운도 실행되도록 하는 것도 좋을까~라고 생각합니다.
타이머 기능은 셧다운이 아니어도 여러가지 사용해 보고 싶습니다.

좋은 웹페이지 즐겨찾기