Skip to main content

How to send an email at specific time of a day in Excel?

Author: Siluvia Last Modified: 2020-09-10

In some cases, you may need to delay sending an email at a specific time during your work. Do you know how to achieve this? This article is going to show you a method of sending an email at the specific time of a day in Excel.

Send an email at specific time of a day with VBA code

Send an email at specific time of a day with VBA code

The following VBA codes can help you send an email at the specific time of a day in Excel. Please do as follows.

1. Press the Alt + F11 keys to open the Microsoft Visual Basic for Applications window.

2. In the Microsoft Visual Basic for Applications window, click Insert > Module. Then copy below VBA code into the Module window.

VBA code 1: Send an email at specific time of a day in Excel

Sub SendEmail()
'Updated by Extendoffice 2018/3/5
Set olApp = CreateObject("Outlook.application")
Set objMail = olApp.CreateItem(olMailItem)
With objMail
 .To = "Email address"
 .Subject = "Send email"
 'HTML for fun
 '.BodyFormat = olFormatHTML
 .HTMLBody = "<HTML><H2>Email Body</BODY></HTML>"
End With
End Sub

3. Double click ThisWorkbook in the left pane to open the ThisWorkbook (Code) window. And then copy below VBA code 2 into the window. See screenshot:

VBA code 2: Send an email at specific time of a day in Excel

Private Sub Workbook_Open()
'Updated by Extendoffice 2018/3/5
    Application.OnTime TimeValue("11:00:00"), "SendEmail"
End Sub

Note: In the code 2, please specify the sending time as you need.

4. Press the Alt + Q keys to close the Microsoft Visual Basic for Applications window.

5. Click File > Save As > Browse.

6. In the Save As dialog box, pleas choose a folder to save the workbook, name it as you need, select Excel Macro-Enabled Workbook format from the Save as type drop-down list, and finally click the Save button. See screenshot:

From now on, as soon as the specific time arriving, the certain email will display automatically. Please click the Send button to send this email.

Related articles:

Best Office Productivity Tools

🤖 Kutools AI Aide: Revolutionize data analysis based on: Intelligent Execution   |  Generate Code  |  Create Custom Formulas  |  Analyze Data and Generate Charts  |  Invoke Kutools Functions
Popular Features: Find, Highlight or Identify Duplicates   |  Delete Blank Rows   |  Combine Columns or Cells without Losing Data   |   Round without Formula ...
Super Lookup: Multiple Criteria VLookup    Multiple Value VLookup  |   VLookup Across Multiple Sheets   |   Fuzzy Lookup ....
Advanced Drop-down List: Quickly Create Drop Down List   |  Dependent Drop Down List   |  Multi-select Drop Down List ....
Column Manager: Add a Specific Number of Columns  |  Move Columns  |  Toggle Visibility Status of Hidden Columns  |  Compare Ranges & Columns ...
Featured Features: Grid Focus   |  Design View   |   Big Formula Bar    Workbook & Sheet Manager   |  Resource Library (Auto Text)   |  Date Picker   |  Combine Worksheets   |  Encrypt/Decrypt Cells    Send Emails by List   |  Super Filter   |   Special Filter (filter bold/italic/strikethrough...) ...
Top 15 Toolsets12 Text Tools (Add Text, Remove Characters, ...)   |   50+ Chart Types (Gantt Chart, ...)   |   40+ Practical Formulas (Calculate age based on birthday, ...)   |   19 Insertion Tools (Insert QR Code, Insert Picture from Path, ...)   |   12 Conversion Tools (Numbers to Words, Currency Conversion, ...)   |   7 Merge & Split Tools (Advanced Combine Rows, Split Cells, ...)   |   ... and more

Supercharge Your Excel Skills with Kutools for Excel, and Experience Efficiency Like Never Before. Kutools for Excel Offers Over 300 Advanced Features to Boost Productivity and Save Time.  Click Here to Get The Feature You Need The Most...


Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I have a list of email addresses in excel that i need to send emails to The subject and body are in cells besides the email address and i have the script below but i need to send 100 emails per 1 hour how i can and what the code the use for it ,please your support

Sub SendEm()
Dim i As Integer, Mail_Object, Email_Subject, o As Variant, lr As Long
lr = Cells(Rows.Count, "A").End(xlUp).Row
Set Mail_Object = CreateObject("Outlook.Application")
For i = 2 To lr
With Mail_Object.CreateItem(o)
.Subject = Range("B" & i).Value
.To = Range("A" & i).Value

.Body = Range("C" & i).Value
.attachments.Add (Sheets("Sheet1").Range("H" & i).Text)
.attachments.Add (Sheets("Sheet1").Range("I" & i).Text)
.attachments.Add (Sheets("Sheet1").Range("J" & i).Text)
.attachments.Add (Sheets("Sheet1").Range("K" & i).Text)

'.display 'disable display and enable send to send automatically
End With
Next i
MsgBox "E-mail successfully sent", 64
Application.DisplayAlerts = False
Set Mail_Object = Nothing
End Sub
There are no comments posted here yet
Leave your comments
Posting as Guest
Rate this post:
0   Characters
Suggested Locations