


If you receive a "User-defined type not defined" error, you need to set a reference to another object library. Set a reference to other Object Libraries In that tab, click the button: Start Mail Merge. Open the VBA Editor by pressing Alt+F11 on your keyboard. In Microsoft Word, if you want to start a Mail Merge, you will of course go to the Mailings tab. In older versions look at Tools, Macro Security.Īfter you test the macro and see that it works, you can either leave macro security set to low or sign the macro. To check your macro security in any Office 2010 application and newer, go to File, Options, Trust Center and open Trust Center Settings, and change the Macro Settings. You can sign the macro when it is finished and change the macro security to notify. You could choose the option Notification for all macros, then 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. The macros will not work with the top two options that disable all macros or unsigned macros. Then in the Send Emails dialog, specify the setting.
Mailings in excel plus#
Select the Mailing List table, and click Kutools Plus > Send Emails. Body = Replace(.Body, "", strAcctMgrName)įirst: You need to have macro security set to the lowest setting, Enable all macros during testing. After creating the Mailing List table and entering the information, you can send personalized emails to multiple recipients with Send Emails feature of Kutools for Excel in Excel. Set olItem = olApp.CreateItemFromTemplate(appdata & "\Microsoft\Templates\macro-test.oft") 'Set olItem = olApp.CreateItem(olMailItem) 'Create Mail Item and view before sending StrAcctMgrName = xlSheet.Range("F" & rCount)ĪcctMgrEmail = xlSheet.Range("G" & rCount) 'strAttachment = strAttachPath & xlSheet.Range("E" & rCount) StrFirstname = xlSheet.Range("A" & rCount) Set olApp = CreateObject("Outlook.Application")ĭo Until Trim(xlSheet.Range("A" & rCount)) = "" Set olApp = GetObject(, "Outlook.Application") StrAttachPath = enviro & "\Documents\Send\" ' you need to set a reference to Outlook Object Library (Yes, I know, I'm not creative with demo values and prefer to use Excel's features to create demo values.) The finished merge will look like the following.

Using unique values allows us to use VBA's Replace function.
Mailings in excel update#
While you could use standard merge fields or bookmarks, you would need to use the Word Object Library to update the fields. It also sends the message From an address in the worksheet.Ĭreate an Outlook template, entering unique values where the merge fields would be entered. This macro reads values from an Excel worksheet and sends a mail merge, replacing unique values in the Outlook template with values in the worksheet.
