Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@KaoTechBlog

【VBA】時間を指定してPCのシャットダウンを実行する

タイマー時間を指定してマクロを実行する

今回はA1セルに時間を入力して
シャットダウンタイマーボタンでマクロを発動します。
imagte.png

ボタンを押したら"タイマーをセットしました"とメッセージが出て
指定した時刻が来たら"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

【実行結果】
image.png
時間がきたら1分後にシャットダウンしますという通知が出てシャットダウンされます。

シャットダウンか、サインアウトか?

シャットダウン
objsystem.Run "shutdown -s", 0, False
サインアウト
objsystem.Run "logoff", 0, False

電源を落としたい時はシャットダウンです。
最近ワタシはフルリモート勤務のためPCはシャットダウンではなくサインアウトにしないといけないので業務で使用するPCの場合はサインアウトの方を使用します。

ちょい足しアレンジが必要

今回のマクロはあまり通常業務で必要のないマクロかもしれませんが
以下の場合はアレンジが必要だと思います。
・他のアプリケーションが開いていた場合
・実行5分前に通知を出したい
・場合によって実行をキャンセルしたい
など

今回は時間指定で実行するようなコードですが
ワタシは時間がかかるマクロが終了したらシャットダウンも実行されるようにするのもいいかな~と思います。
タイマー機能はシャットダウンでなくても色々使ってみたいです。

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
KaoTechBlog
事務業務自動化のためVBAでプログラム作成しています。覚書用に色んな場面で使えそうなコードを載せます。コードの書き方はワタシ流です。ご了承ください。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?