Automatically Create Message Box with Timer

How to create a message box automatically that closes itself after a specific time using VBA.
Here’s the complete VBA code:
Private Sub Workbook_Open()
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub

Option Explicit

Const PopupDurationSecs As Integer = 5

Sub startTimer()
Application.OnTime Now + TimeValue(“00:00:05”), “myShellMessageBox”
End Sub
Sub myShellMessageBox()

Dim Result As Integer

Result = CreateObject(“WScript.Shell”).PopUp( _
“Keep this workbook open?”, PopupDurationSecs, _
“Keep Workbook Open”, 4 + 32)
‘MsgBox Result
If Result = 6 Then
Exit Sub
ElseIf Result = 7 Then
End If
End Sub

For more on this method see the MSDN Documentation

Published by

Dinesh Kumar Takyar

Welcome to! My aim is to help you learn MS Excel including VBA. I always felt that a good way to learn something was to find solutions to problems in that domain. That is why I share these Excel videos with you. Mostly these are questions asked during my corporate training sessions. I've been training individuals and companies in computers since 1991. I did my B. Sc. (Vordiplom), M. Sc. (Diplom) and Ph.D. (Dr. rer. nat.) from Hamburg, Germany. The best thing about solving some of my visitor's questions is that I also gain new insights. For more Excel VBA solutions you may like to visit my YouTube channel: For a structured Excel VBA training course online you can visit:

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.