View Single Post
 
Old 07-25-2015, 02:22 AM
Baldeagle Baldeagle is offline Windows 8 Office 2013
Advanced Beginner
 
Join Date: Apr 2012
Posts: 62
Baldeagle is on a distinguished road
Default

Thanks Macropod for your suggestions. I think I have made the changes that you have suggested but although I get the message saying that 4 emails have been sent I can find no trace of them in any of my outboxes or sentboxes and none of them has arrived in the appropriate inboxes! Have I missed something?
Code:
Sub EmailMergeWithAttachments1()
'
' EmailMergeWithAttachments1 Macro
'
'Dim Source As Document, Maillist As Document, TempDoc As Document
Dim Datarange As Range
Dim i As Long, j As Long
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem
Dim mysubject As String, message As String, title As String
Dim x As Long

Set Source = ActiveDocument

' Check if Outlook is running.  If it is not, start Outlook
On Error Resume Next
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
    Set oOutlookApp = CreateObject("Outlook.Application")
    bStarted = True
End If
'Get the Outlook account to use
With oOutlookApp.Session.Accounts
  For x = 1 To .Count
    If .Item(x).CurrentUser.Name = "norman@worldwidemission.org" Then Exit For
  Next
End With
' Open the catalog mailmerge document
With Dialogs(wdDialogFileOpen)
    .Show
End With
Set Maillist = ActiveDocument

' Show an input box asking the user for the subject to be inserted into the email messages
message = "Enter the subject to be used for each email message."    ' Set prompt.
title = " Email Subject Input"    ' Set title.
' Display message, title
mysubject = InputBox(message, title)

' Iterate through the Sections of the Source document and the rows of the catalog mailmerge document,
' extracting the information to be included in each email.
For j = 1 To Source.Sections.Count - 1
    Set oItem = oOutlookApp.CreateItem(olMailItem)
    With oItem
        .Subject = mysubject
        .Body = Source.Sections(j).Range.Text
        Set Datarange = Maillist.Tables(1).Cell(j, 1).Range
        Datarange.End = Datarange.End - 1
        .To = Datarange
        For i = 2 To Maillist.Tables(1).Columns.Count + 1
            Set Datarange = Maillist.Tables(1).Cell(j, i).Range
            Datarange.End = Datarange.End - 1
            .Attachments.Add Trim(Datarange.Text), olByValue, 1
        Next i
        .SendUsingAccount = oOutlookApp.Session.Accounts.Item(x)
    End With
    Set oItem = Nothing
Next j
Maillist.Close wdDoNotSaveChanges

'  Close Outlook if it was started by this macro.
If bStarted Then
    oOutlookApp.Quit
End If

MsgBox Source.Sections.Count - 1 & " messages have been sent."

'Clean up
Set oOutlookApp = Nothing

End Sub
Reply With Quote