When you want to open a template, you need to go through the Choose Form dialog, which is a few more steps than most users want to take. In older versions of Outlook you could create Hyperlink buttons but Outlook 2010 and newer doesn't support hyperlink buttons and tighter security in Outlook 2007 means you need to respond to a warning dialog before the template (or hyperlinked file) opens.
We have solutions for both problems: a macro for Outlook 2010 and newer (also works with Outlook 2007) and a registry key to disable the warning in Outlook 2007.
See Disable the Unsafe Hyperlink Warning when Opening Attachments for the instructions to disable the warning dialog and the Open or Save dialog. Use this registry value with Outlook 2010 if you add files to Outlook's Shortcut navigation pane.
Open templates using a toolbar button
To create a button on the toolbar that will open a template in Outlook 2010 and up, you need to use a macro as it does not support hyperlink buttons found in older versions of Outlook. Additionally, opening a template hyperlinked to a toolbar button in Outlook 2007 brings up a security dialog.
Note: if the template contains custom fields, the customizations will be disabled and the template will be blank. These templates need to be opened using the Choose Form dialog.
The solution
Create a macro that replicates opening a template from the Choose Form dialog using the Application.CreateItemFromTemplate method:
Sub MakeItem()
Set newItem = Application.CreateItemFromTemplate("c:\path\template.oft")
newItem.Display
Set newItem = Nothing
End Sub
Press Alt+F11 to open Outlook's VB Editor then copy and paste this macro into ThisOutlookSession. Add it to the ribbon or QAT. See How to use the VBA Editor for complete instructions to use the VB Editor. See Customize the QAT if you need help customizing the QAT.
If you want to use a macro to open different templates, assign the template path to a variable and pass the variable to the macro, like this:
Dim template As String
Sub OpenTemplate1()
template = "C:\Users\Diane\Templates\template1.oft"
MakeItem
End Sub
Sub OpenTemplate2()
template = "C:\Users\Diane\Templates\email.oft"
MakeItem
End Sub
Private Sub MakeItem()
Set newItem = Application.CreateItemFromTemplate(template)
newItem.Display
Set newItem = Nothing
End Sub
Open a Template and Add an Attachment
If you want to add an attachment to the message at the same time you open the template, you'll use newItem.Attachments.Add "C:\myfile.doc". Add it to your code after the line that opens the template (DUH!) and before the message is displayed (newItem.Display).
The macro will look something like this:
Sub AddAttachment ()
Dim newItem as Outlook.MailItem
Set newItem = Application.CreateItem("C:\path\template.oft")
newItem.Attachments.Add "C:\myfile.doc"
newItem.Display
End Sub
Open a published form
If you want to open a published form, use this code to call the form. You need to be viewing the folder you want the item to be saved in.
Use GetDefaultFolder function to use the default folder for the custom form type. For example, change the Set items line to this the following to create an appointment or meeting in the Calendar folder from any other folder:
Set Items = Session.GetDefaultFolder(olFolderCalendar).Items
Public Sub OpenPublishedForm()
Dim Items As Outlook.Items
Dim Item As Object
Set Items = Application.ActiveExplorer.CurrentFolder.Items
Set Item = Items.Add("ipm.note.name")
Item.Display
End Sub
Add a button to the ribbon tutorial
This tutorial shows you how to add a button to one of Outlook 2013's ribbon tabs. If you prefer to add them to the Quick Access Toolbar (QAT), the steps are the same but you'll start in File, Options, Quick Access Toolbar. Note: In Outlook 2010 you cannot add buttons to the ribbon but you can add buttons to the QAT.
- Select Macros from the Choose commands from menu
- Select the macro. Only Public macros that you can run manually will be listed here.
- Click Add to add it to the QAT (or ribbon)
- To change the icon and display name, click Modify.
After you add a macro the ribbon, you cannot move the macro or change the macro or module name. If you do, you'll need to recreate the macro.
Create a Hyperlink button
This works in Outlook 2007 and older versions as well as all Office applications that have the Assign Hyperlink option on customized buttons. You can hyperlink to any file, although programs (*.exe) may be restricted for security reasons.
You can use any button in the Customize dialog (select a category on the left to see additional buttons). If you want to create a menu button, there is a blank one in the New Menu category.
- Right click on the toolbar area.
- Choose Customize
- From the Commands tab, drag a button (any button) to the Menu bar or a Toolbar
- Right click on the button to expand the customize menu
- Click Assign Hyperlink then Open and select the file you want to open.
Video Tutorial
In Outlook 2007's main interface and in Outlook 2003 and older, you'll add a button to the toolbar as shown in the following video.
Disable the hyperlink warning
When you open templates or files using a hyperlink button or from Outlook's Shortcut navigation pane, you'll receive an unsafe hyperlink warning. You can disable the warning by editing the registry.
You may also receive the file open or save dialog when using a hyperlink button or shortcut. To disable this dialog when the "Always ask" field is grayed out, run Outlook as administrator. The "always ask" checkbox should be clickable. If not, you'll need to edit the registry for each file type. See Disable "Always ask before opening" dialog for more information.
The solution
Add a registry value to disable the warning dialog.
Open the registry editor and browse to the following registry subkey for
Outlook 2016:
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\Security
Outlook 2013:
HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\Security
Outlook 2010:
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Security
Outlook 2007:
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\Security
Note: If the Security key does not exist in your registry, you'll need to create it too.
Right click on Security key and choose New, DWORD. Type (or paste)
DisableHyperlinkWarning as the Value name then double click on it. Enter 1 as the Value data to disable the warning. Delete the key or use a value of 0 to enable the warning.
Group policy keys for administrators
Administrators will add the DisableHyperlinkWarning DWORD to the Policy key instead:
Outlook 2016:
HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\16.0\Common\Security
Outlook 2013:
HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\15.0\Common\Security
Outlook 2010:
HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\14.0\Common\Security
Outlook 2007:
HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\12.0\Common\Security
Do It For Me
If you don't want to edit the registry yourself, you can download and run the following registry key for your version of Outlook.
Outlook 2016Outlook 2013Outlook 2010
Outlook 2007
How to use the macros on this page
First: You need to have macro security set to the lowest setting, Enable all macros during testing. The macros will not work using the options that disable all macros or unsigned macros. You could choose the option to warn about macros and accept it each time you restart Outlook, however, because it's somewhat hard to sneak macros into Outlook (unlike in Word and Excel), allowing all macros is safe, especially during the testing phase. You can sign the macro when it is finished and change the security to allow signed macros.
To check your macro security in Outlook 2010 and newer, go to File, Options, Trust Center and open Trust Center Settings, and change the Macro Settings. In Outlook 2007 and older, look at Tools, Macro Security.
After you test the macro and see that it works, you can either leave macro security set to low or sign the macro.
Open the VBA Editor by pressing Alt+F11 on your keyboard.
To put the code in a module:
- Right click on Project1 and choose Insert > Module
- Copy and paste the macro into the new module.
More information as well as screenshots are at How to use the VBA Editor
More Information
To add a toolbar button to launch an Outlook form (OutlookCode.com)
Outlook 2010: Open custom form via your own ribbon (vboffice.net) VBA sample to open custom form
Opening a Saved Outlook Template (.oft file) in Office
2003 and 2007 Whitepaper by Helen Feddema
How to enable or to disable hyperlink warning messages in 2007 Office programs and in Office 2010 programs (MSKB)
How to disable hyperlink warning messages in Office 2003 (MSKB)
Leave a Reply
112 Comments on "How to Open Outlook Templates and Files using Toolbar Buttons"
I've looked for this so long - thanks a ton! Now trying to expand a bit to include multiple templates/macros but not following how to add. I'm able to duplicate the code changing the path to the macro I want to use and append it in the VB editor under my project. I'm then able to add that to the ribbon. But when I go to click on the 2nd macro template it doesn't do anything. The first one continues to work however. Suggestions?
Snippet of my VB Code:
Sub MakeItemScheduling()
Set newItem = Application.CreateItemFromTemplate("C:pathto1st.oft")
newItem.Display
Set newItem = Nothing
End Sub
Sub MakeItemProjectCompletion()
Set newItem = Application.CreateItemFromTemplate("C:pathto2nd.oft")
newItem.Display
Set newItem = Nothing
End Sub
As long as the path it correct, it should work. Add msgbox "MakeItemProjectCompletion" right before set newitem and see if the dialog box comes up. if so, copy the template path and paste it into windows explorer - does the template open?
Hi Diane - well I went back and re-read your original instructions and was able to get it working with the following:
Dim template As String
Sub OpenTemplate1()
template = "C:\Users\Troy\AppData\Roaming\Microsoft\Templates\SchedulingTemplate.oft"
MakeItem
End Sub
Sub OpenTemplate2()
template = "C:\Users\Troy\AppData\Roaming\Microsoft\Templates\ProjectCompletion.oft"
MakeItem
End Sub
Private Sub MakeItem()
Set newItem = Application.CreateItemFromTemplate(template)
newItem.Display
Set newItem = Nothing
End Sub
Thanks for the quick reply and appreciate you sharing these.
I would also add I've taken this a step further to use the self-signed Cert in Office and digitally signing it to the VB project which makes the pop-ups go away as the macros are now trusted. https://www.groovypost.com/howto/howto/office-2010-outlook-self-signed-digital-certificate/
Thanks!!!
you don't want to sign the macros until after you are 100% sure its working - each time you edit a macro, you need to remove and re-sign the macro. (My instructions are at Using SelfCert to sign a macro
I might be missing something, but I have a simple workaround. Open a blank custom template, such as a task template, with the name of the template in the subject field for easy identification. Save it. It will appear in the task list. Copy and paste it multiple times and you will have plenty of blank templates ready to edit with a single click.
That's fine if you don't mind having blank items hanging around. You could also copy the template from the file system and paste it in an Outlook folder - when you open it, it creates a new item.
Is there a simple way to integrate the FROM field into the macro? I would like
to open my .oft file using a different FROM email address that I have Send on Behalf Of rights to (not Send As). Thanks.
Sub MakeItem()
Set newItem = Application.CreateItemFromTemplate("c:pathtemplate.oft")
newItem.Display
Set newItem = Nothing
End Sub
Yes - before newitem.display, you set the account. https://www.slipstick.com/developer/send-using-default-or-specific-account/ shows how - for send on behalf of, use newitem.SentOnBehalfOfName = "alias@domain.com"
Thank you for this, it worked like a charm. However, the new group (which I named Templates) is huge. How can I make the icons smaller/compact? The icons (macro icons) appear to be full-sized, and the full template name is displayed. I'd love it if I could get them simply with abbreviated template names and/or smaller icons. Is there a way to set/limit the size of my new group? Thank you!
After adding the buttons to the ribbon, you can rename them and change the icon - click the Rename button. The size is automatic - I'm not sure how outlook decides to go small but how crowded the ribbon is is one cause. The first button in a group might be large, additional ones small. Not sure if display name has an effect - but the ones i renamed with longer names seen to be small (when the ribbon is crowded.).
This is exactly what I was looking for. Thank you!
One thing that it would be helpful to include is that the macros will be visible when Macros is selected in the Customize QAT dropdown list. It's simple, but it took me a little while to figure out how to add them once I entered the code.
I came up with an alternate solution that doesn't involve any macros. Using the Shortcuts icon at the bottom of Outlook, I created shortcuts to my favorite templates by dragging them from their folder into the Shortcuts group, and now I can access them all with just one click. You can also add the Shortcuts icon to your ribbon at the top by customizing the ribbon, creating a new ribbon group, and adding Shortcuts from All Commands to it if desired. It also works if you want to create a folder in your Documents for all your Outlook templates and then just drag the whole folder itself into the Shortcuts group. I don't know if this helps anyone, but to me, it's easier than creating macros, although I do know how to do those too.
It's not really easier - unless your company doesn't allow macros, then it's your only option. It doesn't work with custom forms and macros can pick up content from selected items to customize the message. For example, if you are using templates to send replies, you can get the name and address from the selected message or select a contact and open the message addressed to the contact.
Hello, thank you for this explanation.
Does this work with custom forms for calendar events too? I have several of these forms published in my Personal Forms Library, but I can't find the path to them. Can you help me? Thank you.
Yes, it will. You'll use the version lower on the page that works for custom forms - change this line to use the IPM.Appointment.customname you are using:
Set Item = Items.Add("ipm.note.name")
Appled the Multiple Template VBA , only the first one opens the second one does not: Run time error 2147287038 (800300002) Cannot open file , the file is in the same folder as the first one. C:\Users\Username\AppData\Roaming\Microsoft\Templates\2nd.oft. ...help???
The template opens ok if you paste the path into the address bar of windows explorer? Try changing the filename to something with all lower case letters and see if it works. Also check the file permissions.