Excel で条件が満たされたときに電子メールを自動的に送信する方法
メールの自動送信 フリーサイズのメッセージをデザインし、ユーザーに届けることができます。自動メールを生成して送信することで、時間を節約できます。特定の時間に電子メールを送信できるため、電子メールの自動化は潜在的な消費者と関わるための優れたアプローチです.適切なタイミングで適切な人に電子メール通知を送信できる機能は、電子メール自動化の最も価値のある機能です。この記事では、さまざまな VBA マクロのデモを行います。 条件が満たされたときに自動的に電子メールを送信する Excel の。
ワークブックをダウンロードして練習できます。
Excel で条件が満たされたときに自動的にメールを送信する 3 つの方法
条件が満たされたときはいつでも、頻繁に顧客に電子メールを送信する必要があります。 VBA マクロの使用 、メール機能をカスタマイズできます。そのため、VBA を使用して同時に多数の人にメールを送信する場合があります。 技術。マクロを使用してメールを自動送信するには、Outlook が必要です 私たちのコンピュータにプリインストールされています。このコードは、Outlook を使用して受信者にメールを送信します。 .
1.セルの値に基づいて電子メールを自動的に送信する Excel VBA マクロ
Excel VBA マクロを使用します データセットの特定の列の値に基づいて電子メールを自動的に送信します。以下のデータセットは、この例を示すために使用されます。セル D5 のセル値が 10 より大きい 、メールを自動送信する機能を開発します。
スーパー ショップの顧客の詳細に関する次のデータセットがあるとします。データセットの列 B には顧客の名前が含まれています 、列 C のメール アドレス 、および D 列の製品の購入に対する会費の一部 .ここで、未払いの請求書の支払いを要求するメールを顧客に送信したいと考えていますが、従うべき条件があります:顧客の請求額が 10 を超える場合 そうして初めて、私たちは彼らに電子メールを送信します。それでは、条件が満たされたときにセルの値に基づいて電子メールを自動的に送信する手順を見てみましょう。
手順:
- まず、開発者に移動します リボンのタブ
- 次に、 コード から カテゴリで、Visual Basic をクリックします。 Visual Basic Editor を開く .または Alt + F11 を押します Visual Basic Editor を開く .
- これを行う代わりに、ワークシートを右クリックして [コードの表示] に移動することができます . Visual Basic Editor にも移動します .
- これは Visual Basic Editor に表示されます 範囲からテーブルを作成するコードを記述します。
- そして、VBA をコピーして貼り付けます 以下にコードを示します。
VBA コード:
Dim r As Range
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set r = Intersect(Range("D5"), Target)
If r Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10 Then
Call Send_Mail_Automatically1
End If
End Sub
Sub Send_Mail_Automatically1()
Dim ob1 As Object
Dim ob2 As Object
Dim str As String
Set ob1 = CreateObject("Outlook.Application")
Set ob2 = ob1.CreateItem(0)
str = "Hello!" & vbNewLine & vbNewLine & "To prevent further costs," _
& vbNewLine & "please pay before the deadline."
On Error Resume Next
With ob2
.To = Range("C5").Value
.cc = ""
.BCC = ""
.Subject = "Request to Pay Bill"
.Body = str
.Send
End With
On Error GoTo 0
Set ob2 = Nothing
Set ob1 = Nothing
End Sub
- その後、 RubSub をクリックしてコードを実行します。 ボタンを押すか、キーボード ショートカットの F5 を押します .
- 次に、マクロ ダイアログが表示されます。右側の マクロ をクリックします 次に、実行をクリックします ボタン。
- Outlook に移動すると、 アプリケーションを起動して受信ボックスを確認すると、 VBA マクロ 経由で送信されたメールが見つかります。
VBA コードの説明
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Su
Set r = Intersect(Range("D5"), Target)
If r Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10 Then
Call Send_Mail_Automatically1
End If
End Sub
非公開サブスクを使用します このため。 マクロ を使用しないため このコードを実行するためのウィンドウ。セルの値が変更されると、このコードが自動的に実行されます。 Private Sub を使用しています ワークシートの変更で イベント。次に、セルの数を 1 つに減らします。これが D5 です。 .その後、10 を超えているかどうかを確認します .最後に、条件が満たされた場合、Send_Email_Automatically1 サブ手順 実行されます。
Sub Send_Mail_Automatically1()
Dim ob1 As Object
Dim ob2 As Object
Dim str As String
Set ob1 = CreateObject("Outlook.Application")
Set ob2 = ob1.CreateItem(0)
str = "Hello!" & vbNewLine & vbNewLine & "To prevent further costs," & vbNewLine & "please pay before the deadline."
On Error Resume Next
With ob2
.To = Range("C5").Value
.cc = ""
.BCC = ""
.Subject = "Request to Pay Bill"
.Body = str
.Send
ここでは、Send_Email_Automatically1 を使用します サブ手順 .次に、変数の型を宣言します。 Outlook を使用しています 私たちの電子メールクライアントとして。次に、電子メールの内容をコードに入力します。 文字列 電子メールの本文を表示しています。次に、電子メールをセル値 C5 に送信します。 、顧客の電子メールが保存される場所に、件名を「.Subject」に付けます 」。続いて「.Send」 ' はメールの送信に使用されます。
続きを読む: セルの内容に基づいて Excel から電子メールを自動的に送信する (2 つの方法)
2. VBA コードを使用して期日に基づいて電子メールを自動的に送信する
この方法では、Excel VBA マクロを使用して、請求書の期日が近づくと自動的にメールを送信します。これは一種のリマインダーとして機能します。これを実証するために、以下のデータセットを使用します。データセットには、列 B にいくつかの顧客名が含まれています 、列 Cのメールアドレス 、列 Dで送信したいメッセージ 、列 E の期日支払い期限 .そこで、条件が満たされた日付に応じてメールを自動送信する手順を見てみましょう。
手順:
- まず、開発に移動します r リボンのタブ
- 次に、Visual Basic をクリックします。 Visual Basic Editor を開く .
- Visual Basic Editor を開く別の方法 Alt + F11 を押すだけです .
- または、シートを右クリックして [コードを表示] を選択します .
- これにより、Visual Basic ウィンドウが開きます。
- その後、VBA コードをコピーして貼り付けます
VBA コード:
Public Sub Send_Email_Automatically2()
Dim rngD, rngS, rngT As Range
Dim ob1, ob2 As Object
Dim LRow, x As Long
Dim l, strbody, rSendValue, mSub As String
On Error Resume Next
Set rngD = Application.InputBox("Deadline Range:", "Exceldemy", , , , , , 8)
If rngD Is Nothing Then Exit Sub
Set rngS = Application.InputBox("Email Range:", "Exceldemy", , , , , , 8)
If rngS Is Nothing Then Exit Sub
Set rngT = Application.InputBox("Email Topic Range:", "Exceldemy", , , , , , 8)
If rngT Is Nothing Then Exit Sub
LRow = rngD.Rows.Count
Set rngD = rngD(1)
Set rngS = rngS(1)
Set rngT = rngT(1)
Set ob1 = CreateObject("Outlook.Application")
For x = 1 To LRow
rngDValue = ""
rngDValue = rngD.Offset(x - 1).Value
If rngDValue <> "" Then
If CDate(rngDValue) - Date <= 7 And CDate(rngDValue) - Date > 0 Then
rngSValue = rngS.Offset(x - 1).Value
mSub = rngT.Offset(x - 1).Value & " on " & rngDValue
l = "<br><br>"
strbody = "<HTML><BODY>"
strbody = strbody & "Hello! " & rngSValue & l
strbody = strbody & rngT.Offset(x - 1).Value & l
strbody = strbody & "</BODY></HTML>"
Set ob2 = ob1.CreateItem(0)
With ob2
.Subject = mSub
.To = rSendValue
.HTMLBody = strbody
.Send
End With
Set ob2 = Nothing
End If
End If
Next
Set ob1 = Nothing
End Sub
- さらに、F5 キーを押します または Run Sub をクリックします ボタンでコードを実行します。
- では、締め切り列の範囲を選択して、[OK] をクリックします。 .
- 同様に、メール列の範囲を選択して [OK] をクリックします。 続行します。
- メッセージ列の範囲を選択し、[OK] をクリックします。 .
- 以上です。メッセージが電子メール アドレスに送信されるようになりました。 Outlook を確認できます
VBA コードの説明
Public Sub Send_Email_Automatically2()
Dim rngD, rngS, rngT As Range
Dim ob1, ob2 As Object
Dim LRow, x As Long
Dim l, strbody, rSendValue, mSub As String
On Error Resume Next
Set rngD = Application.InputBox("Deadline Range:", "Exceldemy", , , , , , 8)
If rngD Is Nothing Then Exit Sub
Set rngS = Application.InputBox("Email Range:", "Exceldemy", , , , , , 8)
If rngS Is Nothing Then Exit Sub
Set rngT = Application.InputBox("Email Topic Range:", "Exceldemy", , , , , , 8)
If rngT Is Nothing Then Exit Sub
LRow = rngD.Rows.Count
Set rngD = rngD(1)
Set rngS = rngS(1)
Set rngT = rngT(1)
Set ob1 = CreateObject("Outlook.Application")
ここでも、Private Sub を使用します 、 Send_Email_Automatically2 サブの名前です . 手順 .変数の種類を宣言します。次に、 InputBox を使用します 値の範囲を提供します。その後、 Outlook を選択します メールクライアントとして。
For x = 1 To LRow
rngDValue = ""
rngDValue = rngD.Offset(x - 1).Value
If rngDValue <> "" Then
If CDate(rngDValue) - Date <= 7 And CDate(rngDValue) - Date > 0 Then
rngSValue = rngS.Offset(x - 1).Value
mSub = rngT.Offset(x - 1).Value & " on " & rngDValue
l = "<br><br>"
strbody = "<HTML><BODY>"
strbody = strbody & "Hello! " & rngSValue & l
strbody = strbody & rngT.Offset(x - 1).Value & l
strbody = strbody & "</BODY></HTML>"
Set ob2 = ob1.CreateItem(0)
With ob2
.Subject = mSub
.To = rSendValue
.HTMLBody = strbody
.Send
次に、VBA CDate を使用します 関数を使用して、日付が現在の日付から 7 日以内にあるかどうかを確認します。次に、コードでメールの内容を設定します。最後に、「.Send」を使用します ' メールを送信します。
続きを読む: 日付に基づいて Excel から電子メールを自動的に送信する方法
類似の読み物
- 共有 Excel ファイルに誰が入っているかを確認する方法 (クイック手順付き)
- Excel でワークブックの共有を有効にする方法
- VBA を使用して Excel ワークシートからリマインダー メールを自動的に送信する
- Excel を使用して Outlook から一括メールを送信する方法 (3 つの方法)
- マクロを適用して Excel から添付ファイル付きのメールを送信する方法
3.複数の条件が満たされた場合に Excel VBA で電子メールを自動的に送信する
この方法でも、VBA を使用します。 マクロ メールを送信しますが、この場合、複数の条件が満たされた場合にのみ、メッセージが顧客に送信されます。それでは、メールを自動送信するプロセスを見てみましょう。
手順:
- 開始するには、[開発者] をクリックします。
- 次に、Visual Basic Editor を起動します Visual Basic をクリックして .
- または、Visual Basic Editor にアクセスすることもできます Alt + F11 を押す .
- または、右クリック シートで [コードを表示] を選択します メニューから。
- Visual Basic ウィンドウが表示されます。
- そこにコードを書きます。
VBA コード:
Sub Send_Email_Automatically3()
Dim wrksht As Worksheet
Dim add As String, mSub As String, N As String
Dim eRow As Long, x As Long
Set wrksht = ThisWorkbook.Sheets("Multiple Conditions")
With wrksht
eRow = .Cells(.Rows.Count, 5).End(xlUp).Row
For x = 5 To eRow
If .Cells(x, 4) >= 1 And .Cells(x, 5) = "Yes" Then
add = .Cells(x, 3)
mSub = "Request to Pay Bill"
N = .Cells(x, 2)
Call Multiple_Conditions(add, mSub, N)
End If
Next x
End With
End Sub
Sub Multiple_Conditions(mAddress As String, mSubject As String, eName As String)
Dim ob1 As Object
Dim ob2 As Object
Set ob1 = CreateObject("Outlook.Application")
Set ob2 = ob1.CreateItem(0)
With ob2
.To = add
.CC = ""
.BCC = ""
.Subject = mSub
.Body = "Hello!" & N & ", To prevent further costs, please pay before the deadline."
.Attachments.add ActiveWorkbook.FullName
.Send
End With
Set pMail = Nothing
Set pApp = Nothing
End Sub
- 最後に F5 キー を押します コードを実行します。
- マクロ その後、ダイアログが表示されます。その後、適切な マクロ を選択します 実行を押します ボタン。
- 同様に、前の方法で Outlook を開くと、 メールボックスを見ると、VBA マクロで送信したばかりのメールが表示されます。
VBA コードの説明
Sub Send_Email_Automatically3()
Dim wrksht As Worksheet
Dim add As String, mSub As String, N As String
Dim eRow As Long, x As Long
Set wrksht = ThisWorkbook.Sheets("Multiple Conditions")
With wrksht
eRow = .Cells(.Rows.Count, 5).End(xlUp).Row
For x = 5 To eRow
If .Cells(x, 4) >= 1 And .Cells(x, 5) = "Yes" Then
add = .Cells(x, 3)
mSub = "Request to Pay Bill"
N = .Cells(x, 2)
Call Multiple_Conditions(add, mSub, N)
ここでは、2 つの異なる手順を使用します。 Send_Email_Automatically3 最初の Sub Procedure の名前です . 「複数の条件」を設定します ' をシートとして使用し、 変数 を宣言します 種類。次に、最後の行番号を見つけます。さらに、値は行 5 から始まるため、 、行 5 を移動しました コードの最後まで。
Sub Multiple_Conditions(mAddress As String, mSubject As String, eName As String)
Dim ob1 As Object
Dim ob2 As Object
Set ob1 = CreateObject("Outlook.Application")
Set ob2 = ob1.CreateItem(0)
With ob2
.To = add
.CC = ""
.BCC = ""
.Subject = mSub
.Body = "Hello!" & N & ", To prevent further costs, please pay before the deadline."
.Attachments.add ActiveWorkbook.FullName
.Send
次に、Multiple_Conditions を呼び出します 、2 番目の Sub Procedure . Outlook を選択します 私たちのメールクライアントとして。次に、コードでメールの内容を設定します。 添付ファイルの使用 手法では、Excel ファイルを電子メールに追加しています。その後、メールを利用して「.Send」で送信します
続きを読む: Excel で条件が満たされた場合にメールを送信する方法 (3 つの簡単な方法)
結論
上記の方法は、Excel で条件が満たされたときに自動的にメールを送信するのに役立ちます。 .これがあなたを助けることを願っています!質問、提案、またはフィードバックがある場合は、コメント セクションでお知らせください。または、ExcelDemy.com で他の記事をご覧ください。 ブログ!
関連記事
- Excel から Outlook に自動メールを送信する方法 (4 つの方法)
- マクロを使用して本文付きの Excel からメールを送信する方法 (簡単な手順)
- Excel マクロ:セル内のアドレスにメールを送信する (2 つの簡単な方法)
- Excel スプレッドシートから複数のメールを送信する方法 (2 つの簡単な方法)
- 本文付きの Excel からメールを送信するマクロ (3 つの便利なケース)
- 編集可能な Excel スプレッドシートをメールで送信する方法 (3 つの簡単な方法)
-
Excel で電子メール リンクを削除する方法 (7 つの簡単な方法)
ワークシートに電子メール アドレスを入力すると、Excel によって電子メール アドレスが自動的にリンクに変換されます。このリンクを削除する方法を探している場合は、この記事が役に立ちます。この記事の焦点は、 メール リンクを削除する 方法を説明することです。 Excel でメール リンクを削除する 7 つの簡単な方法 この記事を説明するために、次のデータセットを使用しました。このデータセットには従業員 ID が含まれています 、従業員名 、メール ID .ここでは、電子メール アドレスがリンクとして挿入されます。 メール リンクを削除する方法を紹介します 7 の Excel で 1
-
匿名でメールを送信する方法
市場には、Gmail、Outlook、Yahoo! などの機能豊富な電子メール クライアントがたくさんあります。メールは、最も評判の良いインターネット企業の一部が所有しています。多くのユーザーは、オンライン プライバシーに関していまだに安全を感じていません。これらのプラットフォームはすべて、ユーザーをスパイしてユーザーの行動を見つけ出し、他のオンライン アクティビティを追跡しようとするためです。 私たちは通常、双方向のコミュニケーションに電子メールを使用しますが、特定されずに電子メールを送受信する必要があると感じる場合があり、その理由は完全に正当です. プライバシーが好きなだけかもしれません