もりさんのプログラミング手帳

教えることは、二度学ぶこと

スポンサーリンク

【Windows】毎日指定の時間(時刻)に、画面にメッセージを表示したい

f:id:excel-accounting:20180422200808p:plain:w400

オフィスワークでは毎日定刻に実施する作業がありますよね。

・●●時に郵便室に荷物を取りに行く
・帰宅前にキャビネットに鍵をかける

パソコンでの作業中にこんなメッセージが画面に表示されれば、うっかり忘れる心配もないですね

f:id:excel-accounting:20180422180726p:plain:w300


「決まった時間に決まった作業をする」というのはコンピュータの得意分野ですので、存分に力を借りましょう!

会社のスケジュール管理システムの通知機能や、Outlookのアラームなどで工夫している人もいるかと思いますが、

・そんな便利な機能をもつツールがない!
・セキュリティが厳しくて独自にソフトウェアをインストールできない!

などの制約をかかえてる人も、この方法なら実現できちゃいますよ!

この記事で紹介する方法のメリット

✔ Windowsの標準機能のみで設定できる
(特別なソフトウェアのインストールは不要)

✔ メッセージが画面の最前面に表示され、かつ、OKボタンを押すまで消えない
(見落とす心配がない)

※ユーザーがPCにログオンしているときのみ表示されます

設定方法(タスクスケジューラで基本タスクの作成)

1.「メッセージを表示するスクリプト」を作成して
2.Windowsアプリの「タスクスケジューラ」に設定する

です。


この記事では「毎日、退社前にキャビネットに鍵をかける」という作業を想定して説明していきます。


みなさんは、ご自身の作業に置き換えて設定してください。

※Windows10の画面で説明しています。
Windows7では多少の見た目の違いはありますが、流れは同じです。

手順①メッセージを表示するスクリプトを作成

下記のプログラムを使用します。詳細はその下の手順をみてくださいね。

・メッセージ表示プログラム

MsgBox "キャビネットの鍵をかけましょう。" ,vbSystemModal + vbExclamation, "帰宅前作業"


・スクリプト作成手順 ※デスクトップにスクリプトを作成しています
f:id:excel-accounting:20180422174312p:plain

※VBSを使うのが初めての方は、記事の後半のタイトル「(参考)VBScriptのしくみ」も見てみてください。

手順②Windowsアプリのタスクスケジューラに設定


①「タスク」と入力して検索し、②タスクスケジューラを起動
f:id:excel-accounting:20180422174328p:plain:w300


「基本タスクの作成」を選択
f:id:excel-accounting:20180422174341p:plain


「名前」と「説明」を自由に入力
f:id:excel-accounting:20180422174400p:plain

ここでは毎日の定例作業という想定なので、①「毎日」を選択し、②次へ
f:id:excel-accounting:20180422174421p:plain


①開始日時を設定し、②次へ

※画面例では2018/4/23の17:00に設定しています。
『今日の17:00から表示させたい』(例:今は15時)
今日日付を設定しましょう。

『明日の17:00から表示させたい』(例:今は18時)
翌日日付を設定しましょう。
f:id:excel-accounting:20180422174439p:plain


①「プログラムの開始」を選択し、②次へ
f:id:excel-accounting:20180422174501p:plain


①「参照」を押して開くダイアログで、デスクトップに作成したvbsファイルを選択
②vbsファイルのパスが表示されたのを確認して、③次へ
f:id:excel-accounting:20180422174623p:plain


「完了」を押して設定完了
f:id:excel-accounting:20180422174641p:plain

(応用編)設定のバリエーション

・毎日ではなく「毎週月曜・水曜・金曜」のみ表示したい

①「毎週」を選択し、②次へ
f:id:excel-accounting:20180422203910p:plain

①開始日時を設定し、
②そのタスクを実行する曜日を選択
f:id:excel-accounting:20180422203935p:plain

・毎日、9時、11時、13時に表示したい

このような場合は、「毎日」の基本タスクを3つ設定すればOKですね。

(参考)VBScriptのしくみ

f:id:excel-accounting:20180422221304p:plain:w300

スクリプトの中身を編集したいときは、
アイコンを選択して、右クリック→編集を選択
※「開く」ではありません
f:id:excel-accounting:20180422221721p:plain:w400

他にもスクリプトを作りたい方は、下記を参考に必要部分を書き換えてみてくださいね。
f:id:excel-accounting:20180422221330p:plain


表示メッセージのイメージ

メリット②の「画面の最前面に表示され、かつ、OKボタンを押さないとメッセージが消えない」はこのようなイメージです。

f:id:excel-accounting:20180422180804p:plain

ありがたいことに、人間がOKボタンを押すまで最前面に居座り続けてくれるので、見落とすことがありません。

これを実現しているのが、プログラムに記述してある第2引数のvbSystemModalです。

vbSystemModal:システムモーダルに設定します。
メッセージボックスに応答するまで、すべてのアプリケーションが中断されます。

「vbSystemModal」がなくても最初は最前面に表示されるのですが、別のウィンドウを立ち上げるとこのメッセージは背面に隠れてしまいます。

そのため、ウィンドウ切替のタイミングと重なった場合に、一瞬で背面に隠れてしまい気がつかないことがあるのです。(経験談)

登録済みの基本タスクを編集したい

時刻を17:00→17:30に変更するとします。

タスクスケジューラを起動して、

①「タスクスケジューラライブラリ」を選択
②登録済みのタスクを選択して右クリックし、③「プロパティ」を選択

f:id:excel-accounting:20180422181529p:plain

①「トリガー」タブを選択し、②「編集」を押す
f:id:excel-accounting:20180422181634p:plain

①時刻を変更し、②OK
f:id:excel-accounting:20180422181713p:plain

以上です。


作業を忘れないように「●時に~~をする」なんて書いた付箋をモニタに貼っていても、その付箋を見ること自体を忘れたりしますからね。

人間がOKを押すまで居座り続けるメッセージを物理的に画面に表示しちゃいましょう!



『帰宅前作業はあるけど、残業があたりまえだから毎日何時に帰れるかわからない』ですって?!


みなさんの残業が少なくなるように、当ブログではいろいろなオフィスワーク効率化のネタを紹介してますので、ぜひ他の記事もご覧になってくださいね。

<オススメ>
・一般的なオフィスワーカーの方 → カテゴリ【Windows】【Excel


・ExcelVBAを使う方(興味のある方) → カテゴリ【VBA


スポンサーリンク