日付に基づいて Excel から電子メールを自動的に送信する方法
この記事では、 メールを自動的に送信する ための最善の方法を紹介します。 日付に基づく Excel から .通常、 メール を送信するのは簡単です Outlook から または Gmail 、しかし Email を送信したい場合 特定の時間または日付に 、Microsoft Excel を効果的に使用できます。
データセットには、いくつかの メール アドレス があります ([email protected] 以外はすべてダミーのアドレスです) 、これは私のものです。メソッドがどのように機能するかを示すために、私のアドレスを使用しています。
日付に基づいて Excel から電子メールを自動的に送信する 3 つの方法
1. Excel VBA を使用して、指定された日付に基づいて電子メールを自動的に送信する
メールを自動的に 送信できます Microsoft Visual Basic for Application を使用 (VBA ) 日付に基づく . 日付のリストを作成できます メールを送信したいとき 対応する受信者に。理解を深めるために、以下のプロセスを見てみましょう。このセクションでは、日付のみを扱います .
手順:
- まず 開発者 に移動します>> Visual Basic
- VBA ウィンドウ 開くでしょう。 挿入 を選択します>> モジュール
- VBA モジュールに次のコードを入力します。 .
Sub SendEmail01()
Dim Range_Select As Range
Dim Date_Range As Range
Dim Cell_Address As String
Dim Subject, Email_From, Email_To, Cc, Bcc, Email_Text As String
Dim Email_Obj, Single_Mail As Object
On Error Resume Next
Cell_Address = ActiveWindow.RangeSelection.Address
Set Range_Select = Application.InputBox("Select a range:", _
"Message Box", Cell_Address, , , , , 8)
If Range_Select Is Nothing Then Exit Sub
For Each Date_Range In Range_Select
If Date_Range.Value = Date Then
Subject = Application.InputBox("Subject: ", "Message", , , , , , 2)
Email_From = Application.InputBox("Send from: ", "Message Box", , , , , , 2)
Email_To = Application.InputBox("Send to: ", "Message Box", , , , , , 2)
If Email_To = "" Then Exit Sub
Cc = Application.InputBox("CC: ", "Message Box", , , , , , 2)
Bcc = Application.InputBox("BCC: ", "Message Box", , , , , , 2)
Email_Text = Application.InputBox("Message Body: ", "Message Box", , , , , , 2)
Set Email_Obj = CreateObject("Outlook.Application")
Set Single_Mail = Email_Obj.CreateItem(0)
With Single_Mail
.Subject = Subject
.To = Email_To
.Cc = Cc
.Bcc = Bcc
.Body = Email_Text
.send
End With
End If
Next
End Sub
コードの説明
- まず、いくつかの必要な変数を宣言しました:Range_Select および Date_Range 範囲として; Cell_Address 、件名 、Email_From 、Email_To 、Cc 、BCC 、Email_Text 文字列として; Email_Obj および Single_Mail オブジェクトとして .
- 次に Range_Select を設定します 入力ボックス に 範囲を選択できる場所 メッセージ ボックスによるセルの .
- その後、 Value を使用します VBA IF ステートメント 件名も設定します 、 Email_From と Email_To InputBox に .
- メールアドレスがない場合 (Email_To="" )、 サブ プロシージャ 終了します .それ以外の場合は、新しい IF ステートメント にいくつかの変数を追加します . Cc と BCC カーボン コピーを参照してください および ブラインド カーボン コピー メールの さまざまな人に送りたい
- 次に、Outlook アプリケーション オブジェクトを作成します Email_Obj で定義します .また、 Single_Mail を使用します 作成する アイテム Email_Obj 用 .
- その後、Subject を定義します 、Email_To 、Cc 、BCC 、 Email_Text メール の必要な部分として With ステートメントによって . .Send も入れます このステートメントのコマンド
- では、シートに戻って マクロ を実行します。 名前 SendEmail01 現在のマクロの名前なので .
- この操作を実行すると、メッセージ ボックスが表示されます。 期間を選択するように指示するポップアップが表示されます . 範囲を選択 [OK] をクリックします .
- 次に、別の メッセージ ボックス ポップアップします。件名を入力して [OK] をクリックします .
- 一連の メッセージ ボックス が表示されます メールを送信するために必要な情報を入力するように指示します .以下の画像に従ってください。
- あなたのメールアドレスを入力してください .
- メール アドレスを入力してください メールの送信先 .
- CC を挿入 受取人の住所 .
- BCC を入れます メッセージ ボックスの受信者 お望みならば。私は何も選びませんでした。
- メッセージを入力してください。
- 最後のメッセージ ボックスの後 、警告ボックスが表示される場合があります from Microsoft Outlook . [許可] をクリックします .
This operation will send the Email to the addresses that you put in the corresponding message boxes .
This is the main Email .
And below here is the Carbon Copy of the Email .
Thus you can automatically send an Email from Excel based on the date .
Read More:Excel Macro to Send Email Automatically (3 Suitable Examples)
2. Sending Email Automatically from Excel Based on Following Dates
In this section, we will send Emails based on the following or future dates . Suppose you want to send someone an Email prior to 3 days or 7 日々。 Let’s go through the following discussion on this matter.
手順:
- First, go to Section 1 to see how to open a VBA Module .
- Then type the following code in the VBA Module .
Public Sub SendEmail02()
Dim Date_Range As Range
Dim Mail_Recipient As Range
Dim Email_Text As Range
Dim Outlook_App_Create As Object
Dim Mail_Item As Object
Dim Last_Row As Long
Dim VB_CR_LF, Email_Body, Date_Range_Value, Send_Value, Subject As String
Dim i As Long
On Error Resume Next
Set Date_Range = Application.InputBox("Please choose the date range:", "Message Box", , , , , , 8)
If Date_Range Is Nothing Then Exit Sub
Set Mail_Recipient = Application.InputBox("Please select the Email addresses:", "Message Box", , , , , , 8)
If Mail_Recipient Is Nothing Then Exit Sub
Set Email_Text = Application.InputBox("Select the Email Text:", "Message Box", , , , , , 8)
If Email_Text Is Nothing Then Exit Sub
Last_Row = Date_Range.Rows.Count
Set Date_Range = Date_Range(1)
Set Mail_Recipient = Mail_Recipient(1)
Set Email_Text = Email_Text(1)
Set Outlook_App_Create = CreateObject("Outlook.Application")
For i = 1 To Last_Row
Date_Range_Value = ""
Date_Range_Value = Date_Range.Offset(i - 1).Value
If Date_Range_Value <> "" Then
If CDate(Date_Range_Value) - Date <= 7 And CDate(Date_Range_Value) - Date > 0 Then
Send_Value = Mail_Recipient.Offset(i - 1).Value
Subject = Email_Text.Offset(i - 1).Value & " on " & Date_Range_Value
VB_CR_LF = "<br><br>"
Email_Body = "<HTML><BODY>"
Email_Body = Email_Body & "Dear " & Send_Value & VB_CR_LF
Email_Body = Email_Body & "Text : " & Email_Text.Offset(i - 1).Value & VB_CR_LF
Email_Body = Email_Body & "</BODY></HTML>"
Set Mail_Item = Outlook_App_Create.CreateItem(0)
With Mail_Item
.Subject = Subject
.To = Send_Value
.HTMLBody = Email_Body
.Display
End With
Set Mail_Item = Nothing
End If
End If
Next
Set Outlook_App_Create = Nothing
End Sub
Code Explanation
- First, we declared some necessary variables:Date_Range , Mail_Recipient and Email_Text 範囲として; Outlook_App_Create and Mail_Item as Object; Last_Row and i as Long; VB_CR_LF (Visual Basic Carriage Return Line Feed ), Email_Body , Date_Range_Value , Send_Value , Subject as String .
- Then we set Date_Range to an InputBox where it can select a range of dates via a Message Box . An If Statement is used to terminate Sub Procedure if the Date_Range is Nothing .
- We also set Mail_Recipient and Email_Text to InputBox
- After that, we create an Outlook Application Object which we define by Outlook_App_Create .
- A date interval is introduced. In this code, the duration is 7 . Suppose you want someone to be reminded about an event or greetings 7 days after today which is 19th May . If the Emails you want to send are within the dates between 20th to 26th May , the recipient will receive the Email . Otherwise, it will not reach.
- Then we put some commands to format the Email_Body . And also define the necessary parts of the Email by the With Statement .
- We used the .Display command here so that Outlook will open these Email drafts and we can check if any other messages need to be sent. You can use the .Send command if you don’t want to see the message drafts. But do not use these two commands simultaneously .
- Now, go back to your sheet and run the Macro named SendEmail02 as it is the name of your current Macro .
- After executing this operation, you will see a message box pop up telling you to select the date range . Select the range [OK] をクリックします .
- Then, another message box will pop up and it will tell you to select the Email address range . Select the range [OK] をクリックします .
- After that, select the range of text messages in the message box [OK] をクリックします .
- You will see the Email drafts for 21st May to 24th May . Here, the ID [email protected] is an actual Email ID , so we sent the corresponding Email to this address to show you the example. You can put a CC recipient if you want.
- Let’s check my Emails . This can be sent to Spam box too. So check everywhere.
Thus you can automatically send email based on following dates
続きを読む: Send Reminder Email Automatically from an Excel Worksheet Using VBA
類似の読み物
- How to See Who Is in a Shared Excel File (With Quick Steps)
- Enable Share Workbook in Excel
- How to Share Excel File for Multiple Users
- Send Bulk Email from Outlook Using Excel (3 Ways)
- How to Apply Macro to Send Email from Excel with Attachment
3. Automatically Sending Email to a Single Address Based on a Date
We can also send an Email automatically single address based on a date . You can make a list of dates when you want to send the Emails to their corresponding recipients. Let’s go through the process below for a better understanding. In this section, we will only work with the dates .
手順:
- First, go to Section 1 to see how to open a VBA Module .
- Type the following code in the VBA Module .
Option Explicit
Sub SendEmail03()
Dim Date_Range As Range
Dim rng As Range
Set Date_Range = Range("B5:B10")
For Each rng In Date_Range
If rng.Value = Date Then
Dim Subject, Send_From, Send_To, _
Cc, Bcc, Body As String
Dim Email_Obj, Single_Mail As Variant
Subject = "Hello there!"
Send_From = "[email protected]"
Send_To = "[email protected]"
Cc = "[email protected]"
Bcc = ""
Body = "Hope you are enjoying the article"
On Error GoTo debugs
Set Email_Obj = CreateObject("Outlook.Application")
Set Single_Mail = Email_Obj.CreateItem(0)
With Single_Mail
.Subject = Subject
.To = Send_To
.Cc = Cc
.Bcc = Bcc
.Body = Body
.send
End With
End If
Next
Exit Sub
debugs:
If Err.Description <> "" Then MsgBox Err.Description
End Sub
Code Explanation
- First, we declared some necessary variables:rng and Date_Range 範囲として .
- Then we define the range for Date_Range .
- After that, we use Value in a VBA IF Statement and also set Subject , Send_From , Send_To , Cc , Bcc and Body to String . Also, we set Email_Obj and Single_Mail as Variant .
- Then we set the text value for Subject , Send_From , Send_To , Cc and Bcc .
- Later, we create an Outlook Application Object which we define by Email_Obj . Also, we use Single_Mail to create an item for Email_Obj .
- After that, we define Subject , Send_To , Cc , Bcc , Body as the necessary parts of an Email by a With Statement . We also put the .Send command in this statement.
- Now, go back to your sheet and run the Macro named SendEmail01 as it is the name of your current Macro .
- After that, you may see a warning box from Microsoft Outlook . [許可] をクリックします .
This operation will send the Email to the addresses that you put in the corresponding message boxes .
This is the main Email .
And below here is the Carbon Copy of the Email .
Thus you can automatically send an Email from Excel based on the date .
続きを読む: How to Send Email Automatically When Condition Met in Excel
練習セクション
In this section, I’m giving you the dataset that we used in this article so that you can practice on your own.
覚えておくべきこと
Always open and log into your Outlook account to run the VBA codes in this article.
結論
The bottom line is, that you will learn effective methods on how to automatically send Email from Excel based on date . If you have any better ideas or feedback, please share them in the comment box. This will help me enrich my upcoming articles.
関連記事
- [Solved]:Share Workbook Not Showing in Excel (with Easy Steps)
- How to Send Email from Excel List (2 Effective Ways)
- How to Send an Editable Excel Spreadsheet by Email (3 Quick Methods)
- Macro to Send Email from Excel (5 Suitable Examples)
- Macro to Send Email from Excel with Body (3 Useful Cases)
- Excel Macro:Send Email to an Address in Cell (2 Easy Ways)
-
セルの内容に基づいて Excel から電子メールを自動送信する (2 つの方法)
Excel にはさまざまな種類の情報が保存されています ワークシート。たとえば、 メール を持つことができます 重要人物や他社の住所。 Microsoft Excel での作業中、 メールを送信する必要がある場合もあります。 通常、 メール を送信するのは簡単です Outlook から または Gmail 、しかし メール を送信したい場合 セルの内容に基づいて、Microsoft Excel を使用できます 効果的に。今日、この記事では 2 を学びます 適切なイラストを使用して、セルの内容に基づいて効果的に Excel から電子メールを自動的に送信するための迅速かつ適切な方法 セル
-
添付ファイル付きで Excel から Outlook に差し込み印刷する方法 (2 つの例)
差し込み印刷の使用 、各受信者が個別に受け取るドキュメントのコレクションを作成できます。 Excel から Outlook への差し込み印刷の特別な方法を探している場合 添付ファイルを使用すると、適切な場所に来ました。添付ファイル付きで Excel から Outlook に差し込み印刷するには、さまざまな方法があります。この記事では、Excel から Outlook への添付ファイル付きの差し込み印刷に適した 2 つの例について説明します。このすべてを学ぶために完全なガイドに従ってみましょう. 添付ファイル付きの Excel から Outlook への差し込み印刷の 2 つの適切な例 添付フ