So, you want to send emails from Excel. Easy enough, right? Wrong. Actually, your request can mean several totally different things depending on what you actually have on your mind. And since my thought reading device does not quite work yet, we’ll have to discuss them all, one by one.
Sometimes you just want to share the spreadsheet you’re currently editing with a colleague. Or maybe you want to make each email address in your sheet clickable, so that clicking it opens your mail app. Or perhaps you’re automating a full-on email workflow with VBA. Or running a personalized mass campaign using data from your worksheet.
Each of the above is technically “sending emails from Excel,” but they work very differently.
Before diving in, let’s a do quick summary of what we’re talking about:
|
Task |
Complexity |
Used for |
|
Emailing your worksheet |
Low |
Quickly sharing a file |
|
Mailto hyperlink |
Low |
Creating clickable email links |
|
Automation with VBA scripting |
Medium to high |
Automated sending or batch messages |
|
Mail merge |
Medium |
Personalized mass mailings |
Each method has its distinct place. Let’s go through them one by one.
The Default Email Client Mystery
But before we go practical, a quick but important detour is necessary.
When you order Excel (or any other MS Office app) to “send via email” using the app’s menu, it doesn’t open Gmail or whatever mail program you normally use in your browser. Instead, it invokes your default email client – the program your operating system associates with “send email” commands.
Usually that would be Outlook, because it’s bundled with Office. But here’s the catch: even if you’ve never opened Outlook before, Windows still considers it the “default”. You try to send a file from Excel, and Outlook may suddenly appear out of nowhere, demanding setup details you’ve never entered (and maybe do not even know).
Why? Because “default” doesn’t mean “preferred”. It means “registered in the system for handling mailto: links and MAPI calls”.
If you use Gmail, Yahoo, or another web-based mail client, you can:
- set a different default handler (for example, Mailbird or Thunderbird), or
- install a browser extension that lets webmail handle mailto: links.
Otherwise, that “Send via Email” button might surprise you with a creepy Outlook window.
Keep that in mind – it’ll explain a lot of what may happen in the next sections.
1. Emailing Your Spreadsheet the Easy Way
If you just need to share your current spreadsheet, take the most direct route.
In recent versions of Excel, go to File → Share → Email. Depending on your version, you’ll see options such as:
- Send as Attachment – attaches your spreadsheet as an XLSX file to a new message.
- Send as PDF – converts your sheet to a PDF and attaches that instead.
- Send as XPS – an alternative to PDF format developed by Microsoft; ignore it unless strictly required.
Click on your choice, and Excel hands everything off to your default email client (see previous section). A blank message will open with your file already attached.
Adding an Email Button to Your Toolbar
If you do this often, you can make life easier by adding a button to the toolbar:
- Click the dropdown arrow on the Quick Access Toolbar.
- Choose More Commands…
- From the “Choose commands from” list, select All Commands.
- Scroll to Send to Mail Recipient and add it.
No more need to scroll the menu, just click the button instead.
When It May Fail
Sometimes, you click Send but nothing happens. Usually this means one of the following:
- No mail client is configured;
- No email client app is set as default;
- MAPI is disabled or broken.
If you don’t use a local mail app at all, the task becomes more tedious. You’ll have to hit Compose in your web-based email client and attach the file manually, as you would normally do with any other file.
Also Works With
While Excel is very popular, it’s not the only spreadsheet app in existence. If you are using a paid or free alternative like Libre Office Calc, you can usually locate a similar menu item (after a bit of searching) and even add a toolbar button.
2. Using Mailto Hyperlinks
In another use case scenario, you need a link that opens a ready-to-send email in your default client when clicked.
How It Works
A mailto: link is just a specially formatted URL. It usually looks like this:
mailto:bob@example.com
Click it, and your computer’s default mail app opens a new draft addressed to that recipient. You may enter multiple recipient addresses, separated by comma.
You can also set other fields using special parameters:
mailto:bob@example.com?cc=jane@example.com&subject=Hello&body=Hi%20there!
The mailto: syntax supports the following parameters, separated by an ampersand:
- to – works the same way as specifying an address right after mailto;
- cc, bcc – send a copy or blind copy, respectively;
- subject – will become a pre-filled subject line for your email;
- body – similarly, you can prefill the email’s body.
Note that the first parameter must be preceded with a question mark, and special characters inside parameter values must be properly encoded (%20 for spaces, %0A for line breaks, etc.)
Creating Mailto Links in Excel
You can make one manually via:
- Select a cell.
- Press Ctrl+K or use the Insert Link menu.
- Enter your mailto: link.
Alternatively, you may use a formula:
=HYPERLINK("mailto:" & A2 & "?subject=Invoice%26body=Please%20see%20attached", "Send Mail")
In this example, the recipient's address will be taken from the A2 cell – handy for lists of contacts stored in multiple cells.
Common Gotchas
- Special characters: make sure that special characters inside the URL are URL-encoded (%20, %26 for spaces and ampersands, respectively).
- Wrong app opens: again, check your default mail client.
- Bulk sends are discouraged: you may run into problems with your provider if you add dozens of CC or BCC recipients.
Mailto links are great for interactive sheets or quick-click dashboards. But remember, they don’t actually send emails – they just help start them.
Also Works With
Adding mailto: hyperlinks is the most universal technique among those listed here. Besides Excel, it will work for almost any app supporting hyperlinks.
3. Sending Emails with VBA: When You Need Real Automation
Now we’re stepping up a level. If you want Excel to send messages automatically – say, emailing different invoices to every contact in a list – VBA (Visual Basic for Applications) is your friend. It is your only way to go for more complex tasks, like composing a message dynamically based on your spreadsheet data. However, to use it efficiently, you must have at least some programming experience – or be really willing to learn new things.
Setting Things Up
- Enable the Developer tab:
- Go to File → Options → Customize Ribbon.
- Check Developer.
- Open the VBA editor (Alt+F11).
- Insert a new module (Insert → Module).
Example Script
Below is a simple code snippet that sends emails via Outlook. It sends out a number of emails with different attachments, based on the cells’ contents.
|
Sub SendEmails() Dim OutlookApp As Object Dim MailItem As Object Dim cell As Range Dim ws As Worksheet Set OutlookApp = CreateObject("Outlook.Application") Set ws = ThisWorkbook.Sheets("Sheet1") For Each cell In ws.Range("A2:A10") If cell.Value <> "" Then Set MailItem = OutlookApp.CreateItem(0) With MailItem .To = cell.Value .Subject = "Monthly Report" .Body = "Hello, please find your report attached." '.Attachments.Add "C:\Reports\" & cell.Offset(0, 1).Value .Send End With End If Next cell End Sub |
Troubleshooting
When it comes to coding, the caveats you may encounter become quite numerous and sometimes difficult to pinpoint. Here’s a few popular gotchas:
- Outlook not installed: this code relies on Outlook’s programming interface and will not work with any other mail app, be it local or web-based.
- Security warnings: Outlook might block automatic sends. Check your macro settings. Use the .Display method instead of .Send while testing.
- Email stuck in Outbox: usually indicates a permissions or profile issue. Check whether Outlook is able to send messages on its own; if not, contact your network administrator.
Customization Options
Once you master the basics of VBA, you get an incredibly powerful automation tool. You can extend your script to:
- Send HTML messages;
- Add CC/BCC fields;
- Attach dynamic files or exported sheets;
- Log status in another sheet;
- …and ways more!
Also Works With
The same approach works in other spreadsheet software that supports embedded scripting – like Google Sheets (Apps Script), LibreOffice (Basic), or Numbers (AppleScript). Unfortunately, all of these use different scripting languages or language dialects, so you cannot expect a VBA script to work in any other app besides the MS Office suite. Nevertheless, scripting is the most powerful tool to automate your daily tasks, so the effort you invest in mastering it usually pays off in no time.
4. Using Word Mail Merge with Excel Data
For many, this is the go-to method for “mass emailing from Excel”. It’s been around literally for decades – but still works surprisingly well.
How It Works
Word’s Mail Merge feature can pull recipients’ data from an Excel spreadsheet and send individual, personalized emails through Outlook. Here, three apps work in perfect unison: your Excel spreadsheet acts as a data source, Word composes personalised messages, and Outlook performs the actual mailing.
Step-by-Step Guide
- Prepare your Excel data with separate columns for name, email, and any other personalized details.
- Open Word and go to Mailings → Start Mail Merge → E-Mail Messages.
- Click Select Recipients → Use an Existing List, and choose your Excel file.
- Insert merge fields like FirstName into your email body.
- Click Finish & Merge → Send E-Mail Messages…
- Enter the column name containing email addresses and your subject line.
Common Issues
Mail Merge is probably already familiar to many of your colleagues, so you may call for their help if necessary. The most likely failure points here are:
- As with VBA scripts, Outlook must be properly configured in advance.
- Formatting sometimes breaks in HTML mode.
- Large sends can trigger throttling or anti-spam limits.
When It’s Not Enough
Mail Merge tool is great for small batches (a few hundred emails at max). However, we strongly advise you against using it for larger batches – or even smaller but regular tasks due to its inherent limitations:
- No delivery tracking;
- No bounce handling;
- No open/click analytics;
- Template management is complicated;
- Emails may not look the same way in different clients.
If you’re running regular email campaigns, look into tools like Power Automate or Zapier for integration, and use a professional email service provider like UniOne, SendGrid, Mailchimp, etc.
Wrapping Up
So, can you send emails in Excel? Absolutely – the exact way just depends on what kind of “sending” you need.
Here’s a quick recap of what is available:
|
Method |
Best For |
Pros |
Cons |
|
Email menu |
One-time file shares |
Simple, fast |
Needs a local mail client |
|
Mailto: links |
Quick contact sheets |
Easy setup, universal |
Manual sending |
|
VBA scripting |
Automated workflows |
Fully customizable |
Outlook only, learning curve |
|
Mail Merge |
Personalized mass mailing |
Familiar, built-in |
Limited control, no tracking or reporting |
Excel isn’t an email platform, but it’s flexible enough to pretend to be one in the right hands.
You can go from zero to full automation with nothing more than Excel, Outlook, and a few lines of VBA. Or just click a button to email your sheet if needed.
Either way, once you understand what “send emails from Excel” really means, you’ll know which option to use for which task.

