banner



how to create a mail merge from excel

Am Outlook user had a question:

I'm trying to send a mail merge from multiple people. I was wondering if there was a way to choose the sender address based on the recipient email address? I'm using an Excel file as the source of the merge and the sender names associated with the recipients in the excel file so I can add a field after the closing line in the document to have the senders name appear.

No, Outlook can't do this, at least not as a native feature within the mail merge. Mail merges will always be sent from the default email account. However, it is possible if you use a macro to handle the merge, not the mail merge wizard.

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. It also sends the message From an address in the worksheet.
use values in a worksheet

Create an Outlook template, entering unique values where the merge fields would be entered. While you could use standard merge fields or bookmarks, you would need to use the Word Object Library to update the fields. Using unique values allows us to use VBA's Replace function.
template containing the fields

The finished merge will look like the following. (Yes, I know, I'm not creative with demo values and prefer to use Excel's features to create demo values.)
merged message

' This is an Excel macro ' you need to set a reference to Outlook Object Library Public Sub SendMailMergeExcel()   Dim olApp As Object  Dim xlApp As Excel.Application  Dim xlWB As Excel.Workbook  Dim xlSheet As Excel.Worksheet  Dim rCount As Long  Dim bXStarted As Boolean  Dim enviro As String  Dim appdata As String  Dim strPath As String  Dim strAttachPath As String  Dim SendTo As String  Dim CCTo As String  Dim  strSubject As String  Dim  strAcctMgrName As String  Dim  AcctMgrEmail    Dim olItem As Outlook.MailItem  Dim Recip As Outlook.Recipient   ' Get Excel set up enviro = CStr(Environ("USERPROFILE")) appdata = CStr(Environ("appdata"))      On Error Resume Next      Set xlApp = Excel.Application      On Error GoTo 0      'Open the workbook to input the data      Set xlWB = xlApp.ActiveWorkbook      Set xlSheet = xlWB.Sheets("Sheet1")     ' Process the message record          On Error Resume Next  rCount = 2 strAttachPath = enviro & "\Documents\Send\" Set olApp = GetObject(, "Outlook.Application")      If Err <> 0 Then          Set olApp = CreateObject("Outlook.Application")          bXStarted = True      End If  Do Until Trim(xlSheet.Range("A" & rCount)) = ""  strFirstname = xlSheet.Range("A" & rCount) SendTo = xlSheet.Range("B" & rCount) CCTo = xlSheet.Range("C" & rCount) strSubject = xlSheet.Range("D" & rCount) ' if adding attachment 'strAttachment = strAttachPath & xlSheet.Range("E" & rCount) strAcctMgrName = xlSheet.Range("F" & rCount) AcctMgrEmail = xlSheet.Range("G" & rCount)  'Create Mail Item and view before sending ' Default message form 'Set olItem = olApp.CreateItem(olMailItem)  ' use a Template Set olItem = olApp.CreateItemFromTemplate(appdata & "\Microsoft\Templates\macro-test.oft")  With olItem .SentOnBehalfOfName = AcctMgrEmail .To = SendTo .CC = CCTo .Subject = strSubject  .Body = Replace(.Body, "[FirstName]", strFirstname) .Body = Replace(.Body, "[AcctMgrEmail]", AcctMgrEmail) .Body = Replace(.Body, "[strAcctMgrName]", strAcctMgrName) if adding attachments:  '.Attachments.Add strAttachment .Save  .Display '.Send End With    rCount = rCount + 1      Loop  Set xlWB = Nothing Set xlApp = Nothing       End Sub              

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 with the top two options that disable all macros or unsigned macros. 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. You can sign the macro when it is finished and change the macro security to notify.

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. In older versions 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.

Set a reference to other Object Libraries
If you receive a "User-defined type not defined" error, you need to set a reference to another object library.

  1. Go to Tools, References menu.
  2. Locate the object library in the list and add a check mark to it.
    Reference the Word object model in Outlook's VBA Editor

More information as well as screenshots are at How to use the VBA Editor

how to create a mail merge from excel

Source: https://www.slipstick.com/developer/vba-mail-merge-excel/

Posted by: rogersthoing.blogspot.com

0 Response to "how to create a mail merge from excel"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel