エクセルシート内で、〇分後に警告を表示するVBAを紹介します。
共有のエクセルブックを使用していると、誰かがファイルを閉じ忘れて他の人が操作できないという事象が頻繁に生じるのではないでしょうか。
読み取り専用でしかファイルを開けないとフラストレーションが溜まりますよね。
ポップアップで警告を表示するようにしておけば閉じ忘れの割合をぐっと下げることができるのでぜひ活用してみてください。
タイマー警告で開きっぱなし防止
10分後にメッセージボックスを表示するVBAコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | Private 設定時間 As Variant Sub Workbook_Open() If Not ThisWorkbook.ReadOnly Then 設定時間 = Now + TimeValue("00:10:00") Application.OnTime 設定時間, "ThisWorkbook.利用時間警告" End If End Sub Private Sub 利用時間警告() 警告文 = "共用ファイル「" + ThisWorkbook.FullName + "」" + vbCrLf + vbCrLf 警告文 = 警告文 + "10" + "分 を経過しました。" + vbCrLf + vbCrLf 警告文 = 警告文 + "使用していない場合は閉じてください。" MsgBox 警告文, vbInformation, "共用ファイルが開かれています" 設定時間 = Now + TimeValue("00:10:00") Application.OnTime 設定時間, "ThisWorkbook.利用時間警告" End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.OnTime 設定時間, "ThisWorkbook.利用時間警告", , False End Sub |
Sub Workbook_Open() でワークブックが開かれた際に起動する仕組みになっています。
設定時間は下図の黄色マーカー部分で任意の数値に変更してください。
指定した時間にメッセージボックスを開くに Application.OnTime の記述を使用しています。
コピーしたまま使用できると思いますが、下図マーカーのプロシージャは整合を取るようにしてください。
メッセージボックスの内容としてはひとまず下図のように表示されるようにしていますので、好みに合わせて文章を変更してください。
尚、vbCrLf は改行を表しています。
ブックを閉じたのに警告がゾンビのように復活するのを防ごう
他のブックを開いたままにしていると、閉じたはずの警告が時間通りに表示され、ブックが再び表示される現象が起こります。
これは、Application.OnTime がブックが閉じられても機能し続けていることが原因です。
つまり、Application.OnTime を解除してあげればこの現象を避けることができます。
今回紹介したVBAではブックを閉じる際に、Application.OnTime を解除するようにしてあります。
( Private Sub Workbook_BeforeClose(Cancel As Boolean) を活用。)
解除するためには Application.OnTime の語尾に下図黄色マーカーのように , , False を追加が必要です。
これで、不具合なく共有エクセルに警告が出せるはずです。
参考にしていただけると幸いです。
コメント