Dim Sht as Worksheet
Dim FirstRow as integer, LastRow as Integer
Dim App, Itm
Dim SendTo as String, Esubject as string, Ebody as string
Dim NewFileName as String
Set Sht = Worksheets("Sheet1")
Set App = CreateObject("Outlook.Application")
FirstRow = 3
LastRow = 100 ' You could insert code here to find last row
For x = FirstRow to LastRow
SendTo = Sht.Range("D" & x).Value
If Len(SendTo) > 0 Then ' Make sure there is data in this row
Esubject = Sht.Range("E" & x).Value
Ebody = Sht.Range("F" & x).Value
NewFileName = Sht.Range("G" & x).Value
Set Itm = App.CreateItem(0)
With Itm
.Subject = ESubject
.To = SendTo
.CC = "YourEmail@YourCompany" ' If you want a confirmation copy
.Body = Ebody
If Len(NewFileName) > 0 Then .Attachments.Add (NewFileName) ‘ Must be complete path
‘.Display ‘ This property is used when you want the user to see email and manually send. Then comment out rest of code except “End With” statement
.send
End With
End If
Set App = Nothing
Next x
Set Itm = Nothing
End Sub