How to easily disable Reply To All and Forward in Outlook
2010 UPDATE: This is cool and interesting to read, but you should just go get this Free Outlook 2007/2010 No Reply All AddIn to do this work for you.
UPDATE: To be clear. This technique does NOT send macros in your email. It only flips a metadata bit in the message and that metadata is only transmitted within Exchange (within your company). It is not propagated to outside email addresses. It's better than BCC because it doesn't break local Outlook Rules. It's harmless.
I really hate it when I say "please send replies directly to me" and a Reply To All happens. It's not only a bummer for the person who sent it but also for everyone on the distribution list.
Trivia: At Microsoft they/we say "little-r" me when we want a reply directly to us or "Big-R" when we mean Reply To All.
I was thinking it'd be cool to have a button on my Outlook Message Form that prevented folks from Reply'ing to All or Forwarding the message. I poked around a bit trying to write an Outlook Macro and realized that I've completely overwritten all the brain cells that had previously held information about VBA macro programming. Seriously. I worked in VB3-6 for years. I was a ninja. Now I'm just an old fat guy with a Black Belt that used to fit. Anyway.
I asked for help and KC Lemson pointed me to Bill Jacob, both actual ninjas, and he took my Rube Goldberg-ian plan and turned it into two lines of code. Doh.
Here's "How to easily disable Reply To All and Forward in Outlook":
Go Tools|Macro|Macros...
In the next dialog, type something like NoReplyAll and click Create.
At this point, even when running Vista 64, you'll be magically transported back to 1996, completely with owner-draw non-standard gray toolbars and other bits of gray that will leak in from the past.
Add these lines to your new subroutine:
ActiveInspector.CurrentItem.Actions("Reply to All").Enabled = False
ActiveInspector.CurrentItem.Actions("Forward").Enabled = False
Then close this window.
At this point you've got a macro that prevents Replying to All and Forwarding (at least within Outlook world. This won't prevent folks running other mail systems from Replying to All, but we're mostly focused on internal work with this tip.)
Now, open up a new Outlook Message and right click at the VERY top (assuming Outlook 2007).
Click More Commands...now from this dialog select "Macros" from the dropdown, select your new Macro and click Add>>.
If you like, click on your Macro on the right and select the Modify button and pick a nice icon for it and a Display Name. I used a "halting hand" icon:
Click OK and look at your Quick Access Toolbar...you've got a nice little icon there.
Now, CLICK that button then send an email to yourself or a coworker...
Cool, mission accomplished. One less thing to worry about. Thanks Bill!
About Scott
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
About Newsletter
does that do what I think it does? Run arbtirary code on the client machine?
TPM
http://office.microsoft.com/en-us/outlook/HP052430171033.aspx?pid=CH063565661033
Vijay - It's just two lines of code. ;) I like your feature idea, will you write the other two lines?
Dim btn As CommandBarButton
Set btn = ActiveInspector.CommandBars("Standard").Controls("No Reply To All")
'btn.Tag - Enable/Disable 'No Reply to All'
If (btn.Tag = vbNullString) Then btn.Tag = False
If (btn.Tag) Then
btn.Tag = False 'Disable feature
ActiveInspector.CurrentItem.Actions("Reply to All").Enabled = btn.Tag
ActiveInspector.CurrentItem.Actions("Forward").Enabled = btn.Tag
'How to highlight toolbar icon?
Else
btn.Tag = True 'Enable feature
ActiveInspector.CurrentItem.Actions("Reply to All").Enabled = btn.Tag
ActiveInspector.CurrentItem.Actions("Forward").Enabled = btn.Tag
'How to remove highlight from toolbar icon?
End If
End Sub
Trivia: At Microsoft they/we say "little-r" me when we want a reply directly to us or "Big-R" when we mean Reply To All.
I believe this terminology dates all the way back to win Wzmail was the standard email client within Microsoft. (1990 or so. I think Winmail replaced it in '91.)
http://www.aaronlerch.com/blog/2007/10/24/how-to-easily-redirect-an-email-thread-in-outlook/
I did notice that (in Outlook 2002 anyway) the ReplyToAll icon in the application toolbar remains, so users who read their email in the preview window will still be able to reply to all.
Ryan, one of the big reasons to have this fix is to avoid BCC - because BCC breaks everyone's inbox rules. The BCC mail shows up in the main inbox instead of the sub-folder assigned by the inbox rules.
First, love the blog. Second, not sure how you keep the content so fresh with everything else you have going on! Thanks for all the info and being such an asset to the developer community.
How does this work in Outlook 2003? I can't find a way to add the macro to the mail.
@Computhomas: In Outlook 2003, open a new email, click on Tools > Customize, go to the Commands tab, pick the Macros category, and you should see your macro. Just drag this macro to the appropriate place in your email toolbar.
Sub NoReplyAll()
Dim mail As MailItem
Set mail = Application.CreateItem(olMailItem)
mail.Actions("Reply to All").Enabled = False
mail.Actions("Forward").Enabled = False
mail.Display
End Sub
This macro is on my standard toolbar in outlook.
Even if your other reciptients are in your company (or outside your company but still running outlook) this seems to me to be a hugely dangerous approach to solving a lack of situational awareness on the part of your recipients, no...?
Or am I misunderstanding the approach here...?
Good one Scott. :)
Silly question of the week time but is there really any value when Joe User can just:
- Hit reply and then change the email address / add entries into the CC field?
- Create a new email and copy / paste the content
....
You get the drift
Dim myolapp As Object
Dim myinspector As Object
Set myolapp = CreateObject("Outlook.Application")
Set myinspector = myolapp.ActiveInspector
myinspector.CurrentItem.Actions("Reply to All").Enabled = False
myinspector.CurrentItem.Actions("Forward").Enabled = False
ActiveInspector.CurrentItem.Actions("Reply").Enabled = False
Great tip!
Comments are closed.
The easiest way someone can tell this is a good blog post; you refer to yourself as a ninja and link to Real Ultimate Power. That is one of the best pages in the universe. Next to "The Best Page In the Universe" of course.