見出し画像

【VBS】無限にリマインドしてくれる物忘れ防止ツール(←ダメ人間に嬉しい)

将来の自分宛てに、リマインドを表示させるVBSのコードです。
「ちょっと今手が離せないけど、これが終わったらすぐやろう」と思ってても、数分後には忘れてしまうことってありませんか?
5時間後くらいにふと思い出して「やべっ、あれやってなかった!」という物忘れを防止するツールです。
便利なスヌーズ機能付き。

VBSだから、ファイルをダブルクリックするだけですぐ起動できます。
メモ帳代わりに使うことで、ごく近い将来の自分にリマインドを送ることが出来ます。

'メッセージ入力
Dim strMsg
strMsg = InputBox("5分後にやることを入力するのじゃ", "メッセージを入力")
If strMsg = "" Then
	WScript.Echo "処理中断"
	WScript.Quit
Else
	'処理継続
End If

'5分待つ
WScript.Sleep 5 * 60000

'自身のフォルダパスを取得
Dim fso
Dim Folder
Set fso = CreateObject("Scripting.FileSystemObject")
Folder = fso.getParentFoldername(WScript.ScriptFullName)
Set fso = Nothing


'再通知
Dim Cnt
Dim strCnt
Cnt = -1
Do
	'再アラームの回数カウント
	Cnt = Cnt + 1
	If Cnt = 0 Then
		strCnt = ""
	Else
		strCnt = "(再通知" & Cnt & "回目ッ!!)"
	End If

	'通知
	Ans = MsgBox("■ 時は来た! ■ " & strCnt & vbCrLf & vbCrLf & _
			strMsg & vbCrLf & vbCrLf & "♯スヌーズ設定するかえ(゚Д゚)??", _
			 vbYesNo + vbExclamation, "タイトル" )

	Select Case Ans
	Case vbYes
		Input = InputBox("ほんとに後でやるんかえ(゚Д゚)??" & vbCrLf & vbCrLf & vbCrLf & _
			"何分後に再通知する(゚Д゚)??" & vbCrLf & vbCrLf & _
			"【入力例(●分後に再通知】 5 ", "半角数字で入力")
		If Input = "" Then
			MsgBox "ほれ、ちゃんと確認するのじゃ。", , "タイトル"
			Set objShell = WScript.CreateObject("Shell.Application")
			objShell.Explore Folder
			Set objShell = Nothing
			WScript.Quit
		End If
		WScript.Sleep Input * 60000
	Case vbNo
		MsgBox "ほれ、ちゃんと確認するのじゃ。" , , "タイトル"
		Set objShell = WScript.CreateObject("Shell.Application")
		objShell.Explore Folder
		Set objShell = Nothing
		WScript.Quit
	End Select
Loop

これをメモ帳に貼り付けて、拡張子を「.vbs」にして保存すれば準備完了。
※このとき文字コードはANSIを指定してください。
 これをやり忘れると、動きません。

動作は単純で、
①入力ボックスに、リマインドしたいメッセージを入力
②5分後にリマインド通知(メッセージボックスを表示)
③スヌーズ設定するかしないかを選択
 するを選んだ場合、何分後にスヌーズを出すか分単位で指定。
 しないを選んだ場合、目的のアクションを実行して処理終了。
④スヌーズする場合は、再リマインド通知を出す。
 何回でも再リマインド可能。
 (つまり無限に「すぐやろう」の言い訳が可能。ダメ人間には嬉しい)

なお上記例では、目的のアクションを「カレントフォルダ(VBS自身が保存されている場所)を開く」にしました。
リマインド文に「●●の資料を確認する」などと設定したとき、リマインド通知と同時に資料の格納場所を自動で開いてくれたら便利かなーと思ったので、暫定でこうしました。

見ての通り簡単なコードなので、②の待機時間や、③の目的のアクションの部分を適宜便利なように書き換えてくれると嬉しいです。

この記事が気に入ったらサポートをしてみませんか?