Reputation: 13
EDIT
Sub CreateEmail(Subject As String, Body As String, ToSend As String, CCs As String, FilePathtoAdd As String)
Dim OlApp As Object
Dim OlMail As MailItem
Dim ToRecipient As Variant
Dim CcRecipient As Variant
Dim Attachments() As String
Dim i As Integer
Set OlApp = Application
Set OlMail = OlApp.CreateItem(olMailItem)
OlMail.Recipients.Add ToSend
OlMail.Subject = Subject
OlMail.Body = Body
OlMail.SentOnBehalfOfName = "mailbox"
If FilePath1 <> "" Then
If FilePathtoAdd <> "" Then
Attachments = Split(FilePathtoAdd, ",")
For i = LBound(Attachments) To UBound(Attachments)
If Attachments(i) <> "" Then
OMail.Attachments.Add Trim(Attachments(i))
End If
Next i
End If
End If
OlMail.Display 'change this to OlMail.Send if you just want to send it without previewing it
End Sub
Sub EmailIt()
CreateEmail "This is Subject", "Body", "To", "CC", "C:\Users\b\Desktop\NFM\Export\0418 LSN " & Format(Date, "mm-dd-yy") & ".xls", "C:\Users\b\Desktop\NFM\Export\0418 Backorder " & Format(Date, "mm-dd-yy") & ".xls"
End Sub
I'm using the code below, in outlook vba, to create an email, attach a file, and send the email. It works fine, except I can't figure out how to add multiple attachments to a single email? Any help is greatly appreciated.
Sub CreateEmail(Subject As String, Body As String, ToSend As String, CCs As String, FilePathtoAdd As String)
'write the default Outlook contact name list to the active worksheet
Dim OlApp As Object
Dim OlMail As MailItem
Dim ToRecipient As Variant
Dim CcRecipient As Variant
'Set OlApp = CreateObject("Outlook.Application")
'Set OlMail = OlApp.CreateItem(olMailItem)
Set OlApp = Application
Set OlMail = OlApp.CreateItem(olMailItem)
'For Each ToRecipient In Array("[email protected]", "[email protected]", "[email protected]")
'OlMail.Recipients.Add ToRecipient
OlMail.Recipients.Add ToSend
'Next ToRecipient
'fill in Subject field
OlMail.Subject = Subject
OlMail.Body = Body
OlMail.SentOnBehalfOfName = "email.com"
'Add the active workbook as an attachment
' OlMail.Attachments.Add "C:\Users\Ali\Desktop\Sentence Correction\Comparisons.pdf"
If FilePathtoAdd <> "" Then
OlMail.Attachments.Add FilePathtoAdd
End If
'Display the message
OlMail.Display 'change this to OlMail.Send if you just want to send it without previewing it
End Sub
Sub EmailIt()
CreateEmail "This is Subject", "Body", "email.com", " ", "C:\Users\b\Desktop\NFM\Export\0418 LSN " & Format(Date, "mm-dd-yy") & ".xls"
End Sub
Upvotes: 1
Views: 34698
Reputation: 3435
You just need to do:
Olmail.attachments.add secondpath
If you put the attachment paths in a comma delimited string and pass it as "FilePathToAdd" then you can do this:
Dim Attachments() As String
Dim i As Integer
If FilePathToAdd <> "" Then
Attachments = Split(FilePathToAdd, ",")
For i = LBound(Attachments) To UBound(Attachments)
If Attachments(i) <> "" Then
OlMail.Attachments.Add Trim(Attachments(i))
End If
Next i
End If
Upvotes: 4
Reputation: 49395
The following lines from your code add the attachment:
'Add the active workbook as an attachment
' OlMail.Attachments.Add "C:\Users\Ali\Desktop\Sentence Correction\Comparisons.pdf"
If FilePathtoAdd <> "" Then
OlMail.Attachments.Add FilePathtoAdd
End If
You just need to call the Add method of the Attachment class as many times as you need to add attachments specifying different file paths.
Upvotes: 0