Send emails using excel list

You can send emails using an Excel list by using a combination of Excel formulas and VBA macros. Here's a step-by-step guide to help you achieve this:

Method 1: Using Excel Formulas

  1. Create a new Excel sheet with the following columns:
    • Email Address
    • Subject
    • Body
    • Attachment (optional)
  2. Enter the email addresses, subject, and body in the respective columns.
  3. Use the CONCATENATE function to combine the email address, subject, and body into a single string. For example:
    • =CONCATENATE(A2,"Subject: ",B2,"Body: ",C2)
    • =CONCATENATE(A2,"Subject: ",B2,"Body: ",C2,"Attachment: ",D2)
  4. Use the MAILTO function to send the email. For example:
    • =MAILTO(A2,"Subject: ",B2,"Body: ",C2)
    • =MAILTO(A2,"Subject: ",B2,"Body: ",C2,"Attachment: ",D2)
  5. Select the cell with the MAILTO function and press Enter to send the email.

Method 2: Using VBA Macros

  1. Open the Visual Basic Editor by pressing Alt + F11 or by navigating to Developer > Visual Basic in the ribbon.

  2. Create a new module by clicking Insert > Module in the Visual Basic Editor.

  3. Paste the following code into the module:

    Sub SendEmails()
     Dim ws As Worksheet
     Set ws = ThisWorkbook.Worksheets("YourSheetName")
    
     Dim i As Long
     For i = 2 To ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
         Dim email As String
         email = ws.Cells(i, "A").Value
    
         Dim subject As String
         subject = ws.Cells(i, "B").Value
    
         Dim body As String
         body = ws.Cells(i, "C").Value
    
         Dim attachment As String
         attachment = ws.Cells(i, "D").Value
    
         Dim olApp As Object
         Set olApp = CreateObject("Outlook.Application")
    
         Dim olMail As Object
         Set olMail = olApp.CreateItem(0)
    
         With olMail
            .To = email
            .Subject = subject
            .Body = body
             If attachment <> "" Then
                .Attachments.Add attachment
             End If
            .Send
         End With
    
         Set olMail = Nothing
         Set olApp = Nothing
     Next i
    End Sub
  4. Replace "YourSheetName" with the name of your Excel sheet.

  5. Save the module by clicking File > Save (or press Ctrl + S).

  6. Go back to your Excel sheet and select the cell range that contains the email addresses, subject, body, and attachment.

  7. Press Alt + F8 to open the Macro dialog box, select the SendEmails macro, and click Run.

Tips and Variations

Remember to test the code and macros in a controlled environment before sending emails to a large number of recipients.