If you’ve not noticed, then you probably don’t think it’s a problem, and as it happens, this new behaviour is by design so that you don’t unknowingly dismiss the reminder window by hitting enter.
I prefer the new behaviour, but then I only really use Outlook at work and have it up in its own dedicated monitor there. Also, I'm not an every window maximised kinda guy.
If like several of my colleagues you want something like the old behaviour back, this is what I pulled out of my hatch for them - it's not elegant but you're welcome to try it and see if it works for you:
- Create a Digital certificate for later
- Hit Start and type ‘certificate’, select ‘Digital Certificate for VBA Projects’
- Enter a name for your certificate
- Done
- Open Outlook and hit Alt + F11 to start the VBA editor.
- In the tree on the left, expand ‘Microsoft Office Outlook Objects' and double click on ‘ThisOutlookSession’
- Paste in this code, modifying the text in quotes to suit your preferences. Leave the quotes in.
Private Sub Application_Reminder(ByVal Item As Object)
If TypeOf Item Is AppointmentItem Then
MsgBox "Message text", vbSystemModal, "Message title"
End If
End Sub
- Sign the Macro so it will run by going to Tools > Digital Signature… and choosing the certificate you created earlier
- Close the VBA window
This should work for most versions of Outlook. There may be better or more elegant ways of doing this and if anyone knows of one, please say so.
wohoo! it works!
ReplyDeleteAlternatively you could download Outlook Reminders On Top (free program) from www.radaker.com. It just creates an icon in your system tray, and whenever it sees an Outlook reminder either minimized or behind other windows it brings it to the front for you (like the old days). But it does NOT steal the focus from whatever you're currently working on (unlike the old days). Win-win!!
DeleteThis is not free. The trial is free, but the actual program is $5. Would be awesome if it was free.
DeleteThis is not free. The trial is free, but the actual program is $5. Would be awesome if it was free.
DeleteHello, firstly thanks for this great idea / workaround for the issue!
ReplyDeleteHowever I have a problem with the Script as it only will run for a limited Time, it seems the script won't work after a reboot but it's still present in the VBA Editor.
I have checked and allowed the Macro Security Settings in Outlook and allowed also, I also saw the used Certificate was not trusted and I put it int eh Trusted Root Certificate Folder... However the Script didn't work again.. and when I started my machine today from Sleep and had a Meeting in the morning it was working like a charm again. Does anyone seen this behavior too or might know an answer?
I have the same problem. Please someone help.
DeleteShould be fine if you put it where I said - still working for me after 3+ years. Shouldn't need to faff with root certs.
DeleteGreat trick. I was looking for something like this not to miss my reminders. Thanks!
ReplyDeleteWell, that's certainly an improvement. Thank you for writing this and posting it!
ReplyDeleteWhere does Microsoft get off thinking they know what is best for every single user? Apparently "the rest" of us don't have giant multimonitor setups with amplified speakers like Microsoft employees have.
The little blinking thing at the bottom of the screen doesn't even count as a reminder. Give us the *option* to make the popup actually POP UP, Microsoft.
Thanks a lot.
ReplyDeleteThanks so much! however, if I want to get rid of this certificate, how do I remove it?
ReplyDeleteThis works great. FYI, at least in Outlook 2010, you can change the "MsgBox..." line to "Application.ActiveExplorer.Activate" and it will just activate the Outlook reminder instead of creating a message box which you also have to close.
ReplyDeleteIf that takes focus then it's an improvement, I'll give it a go.
Deletei have put this code in and it doesnt seem to work please tell me if im doing something wrong
DeletePrivate Sub Application_Reminder(ByVal Item As Object)
Rem If TypeOf Item Is AppointmentItem Then
Application.ActiveExplorer.Activate"Message text", vbSystemModal, "Message title"
End If
End Sub
I tested this. You actually use "Application.ActiveExplorer.Activate" to replace the entire line that starts with MsgBox. Do not use the quote marks. It works even if you are not in Outlook.
DeleteI hope this helps someone else.
I've tried this and for me it puts the focus on Outlook itself. The reminder is still in the background even if the focus is already on Outlook.
DeleteHow can I make the pop-up reminder "blink" and "flash"? How can I change the colour to something much more vivid? Thanks
ReplyDeleteNot sure how to decorate the message box, but 'vb decorate message box' is probably what you want to search for
DeleteYes, the problem with this is when you reload outlook the script no longer works. It seems that outlook only allows you to create the Vba for the session that you wrote the script for. Help, can some bright spark please help. Thanks
ReplyDeleteShould be sticky if you put it where I said and sign it but your sysadmin may have done policy stuff (actual technical term, honest) that blocks this kind of thing
DeleteAlternatively you could download Outlook Reminders On Top (free program) from www.radaker.com. It just creates an icon in your system tray, and whenever it sees an Outlook reminder either minimized or behind other windows it brings it to the front for you (like the old days). But it does NOT steal the focus from whatever you're currently working on (unlike the old days). Win-win!!
ReplyDeleteThank you! I am not a programmer, and was a bit leery about attempting this, but I'm so frustrated about the appointment reminders that I frequently miss, I decided to give it a try. Your instructions were very easy to follow, and my test case worked like a charm! I have high hopes for this to settle this issue for me. I would download the program from Radaker, but we're not allowed to install programs on our work computers. Nothing that says I can't put in my own (or your own) VBA code, though. :-D
ReplyDeleteThank you. This is efficient and still works with windows 10 using outlook 2016 as well.
ReplyDelete"'Digital Certificate for VBA Projects'" does not appear when I "Hit Start and type ‘certificate'". I'm on Window 10 Pro.
ReplyDeleteFor Windows10Pro and Office 2016, you can create a certificate by going here:
DeleteC:\Program Files\Microsoft Office\root\Office16\Selfcert.exe
Thanks! That worked!
DeleteI can't install programs at work, and neither the VBA certificate nor selfcert.exe exist on my machine... I'm on Office15 and Windows 7...
DeleteI modified the Script as follows to: a) check for Task and Mail Reminders also, b) add a defaulted Cancel Button and not allow closing unless OK is selected, so you don’t accidentally close it if you were about to press the Enter key right before the Window pops up.
ReplyDelete"
Private Sub Application_Reminder(ByVal Item As Object)
If ( _
(TypeOf Item Is AppointmentItem) _
Or (TypeOf Item Is MailItem) _
Or (TypeOf Item Is TaskItem) _
) Then
Dim MsgBoxResult As Integer
Do
MsgBoxResult = _
( _
MsgBox _
( _
"An Outlook Reminder is awaiting snooze/dismissal! Select OK to continue.", _
vbSystemModal + vbOKCancel + vbDefaultButton2, _
"Attention!" _
) _
) ' -- MsgBoxResult =
Loop Until (MsgBoxResult = vbOK)
End If
"
^End Sub
DeleteI have tried this VBA code without desired success. Looking at the options and refusing to pay I came to a solution that worked fine for me. I'm using the Windows 10 Calendar app. I just added my account and sync calendar only and the alerts works perfect at the system tray just as I needed. Give it a chance, it may solve your need.
ReplyDelete