top of page
Search

Send Personalized Emails Directly from Excel

If you've ever found yourself manually emailing dozens of managers about missing performance reviews or spending hours copying and pasting names into reminder messages about goal-setting deadlines, this blog post is for you. What once consumed an entire afternoon now takes mere minutes, and the personalization actually improves when automated.


The Problem With Manual Reminder Emails

Every HR professional knows the drill: quarterly goal-setting, annual performance reviews, compensation cycles, benefit enrollments—each process inevitably requires follow-up with employees who haven't completed their tasks. The traditional approach looks something like this:

  1. Run a report from your HRIS to identify non-compliant employees or managers

  2. Sort and filter the data to group by department or manager

  3. Write individual emails or create a template you customize for each recipient

  4. Copy/paste employee names and relevant details into each message

  5. Send dozens of emails, one painful click at a time


This approach isn't just tedious—it's error-prone. It's far too easy to accidentally include the wrong names, send to the wrong manager, or miss people entirely. Plus, the manual process often means you're less likely to follow up as frequently as you should.


The Excel-to-Email Solution

Imagine instead: You press a single button, and Excel automatically sends personalized reminder emails to every manager with their specific list of employees who haven't completed their goals. Each email addresses the manager by name, lists only their direct reports, and includes the relevant deadlines and links. You can even add relevant attachments. No copy-paste errors, no tedious clicking, and no wasted afternoon.


The Basic Setup: A Simple Reminder System


1. Prepare Your Data


Start with a spreadsheet that contains:

  • Manager names and email addresses

  • Employee names and emails

  • Status indicators (Completed/Not Completed)

  • Any other relevant information (deadlines, links, etc.)

Manager

Mgr Email

Employee

Emp Email

Goal Status

Caroline Giovanni

Felicity Edwards

Not Started

Caroline Giovanni

Emanuel Pennin

In Progress

Eli Ives

Elena Dursa

Not Started

Eli Ives

Cecilia Takaou

Completed


2. Create a VBA Macro to Send Emails

The heart of this solution is a VBA macro that will:

  • Identify which managers have team members with incomplete goals

  • Generate personalized emails listing only their direct reports who need to take action

  • Display the emails for your review before sending


While you could program the emails to send automatically, I personally prefer to review them first. This allows me to make last-minute adjustments—for example, if I recently spoke with a manager who was completing their reviews that day, or if an employee is leaving the organization and the reminder isn't needed.


SAMPLE CODE: This will work for a file on "Sheet1" in your workbook with columns arranged exactly as shown in the table above. To implement:

  1. Open the VBA editor by pressing Alt+F11 in Excel

  2. Insert a new module (right-click in the Project Explorer → Insert → Module)

  3. Copy and paste the code below

  4. Update with your desired subject line and your actual file path for any attachments


Once you have this basic code working, you can enhance it to create more sophisticated reminders. For example, you could customize the message based on how close the deadline is or which specific steps each employee has completed.

Sub sendemail()

'set dimensions
    Dim datafile As Worksheet: Set datafile = Sheets("Sheet1")
    Dim mailapp As Object
    Dim mymail As Object
    Dim count As Long: count = datafile.Cells(Rows.count, 1).End(xlUp).Row
    Dim subject As String
    Dim attach As String
    Dim body As String
    
'Add helper columns
    With datafile
        .Range("F2:F" & count).FormulaR1C1 = "=COUNTIF(R2C2:RC2,RC2)"
    End With
    
'Send emails
    For i = 2 To count
    'Create email components
        If datafile.Range("E" & i).Value <> "Completed" Then
            subject = "Performance Review Reminder: Due 12/20"
            attach = "C:\Users\savvy\OneDrive\Savvy Analytics\Performance Review Guide.pdf"
            receiver = datafile.Range("B" & i).Value
            body = datafile.Range("A" & i).Value & ",<br> Performance reviews need to be completed for the following employees: <br>" & datafile.Range("C" & i).Value
               Do Until datafile.Range("F" & i + 1).Value = 1 Or i = count
                    i = i + 1
                    body = body & "<br>" & datafile.Range("C" & i)
               Loop
            
        'Create emails
            'open new email & set account
                Set mailapp = CreateObject("Outlook.Application")
                Set mymail = mailapp.CreateItem(olMailItem)
    
            'draft email
                With mymail
                    .Display
                    .To = receiver
                    .cc = cc
                    .subject = subject
                    Signature = .htmlbody
                    .htmlbody = body & "<BR>" & Signature
                    .Attachments.Add attach
                End With
        End If
    Next i
    
'Delete helper column
    datafile.Range("F:F").Delete
    
End Sub

3. Making the Tool User-Friendly

To make this solution accessible to your entire HR team (even those who aren't code-savvy), add a simple button to your spreadsheet:

  1. Add a shape

  2. Right click and select "Assign macro"

  3. Select your macro

  4. Click OK

Now, anyone on your team can simply press the button to create all reminder emails in one go.


Real-World Applications

This approach is incredibly versatile and can be adapted for numerous HR processes:

  • Performance Review Reminders: Send managers a list of team members who haven't completed their self-assessments, or remind employees directly about upcoming review deadlines.

  • Learning & Development Tracking: Automatically notify managers about team members with overdue compliance training or required certifications.

  • Benefits Enrollment Follow-Up: Send personalized reminders to employees who haven't completed their benefits selection within the enrollment period.

  • Compensation Review Status: Keep executives updated on which managers have not yet submitted their proposed compensation adjustments.


Final Thoughts

Email automation from Excel is one of those solutions that delivers an immediate and dramatic return on investment. What used to consume hours of tedious work now happens in seconds, with fewer errors and more consistent follow-up.


The real benefit goes beyond time savings. When you're not dreading the manual work of sending dozens of reminders, you'll follow up more consistently, which typically leads to higher completion rates for whatever process you're managing. More completed performance reviews, more on-time goal submissions, and more engaged employees—all from spending a little time setting up automation.

 
 
 

留言


bottom of page