Excel で条件が満たされた場合にメールを送信する方法 (3 つの簡単な方法)
多くの場合、メールを送信する必要があります 状態の場合にお客様に 満たされます。この記事では 3 を紹介します 送信する方法 メール 条件の場合 満たされている エクセルで .メソッドを示すために、3 列のデータセットを選択しました :「名前 」、「メール 」、「支払い」 期日
Excel で条件が満たされた場合にメールを送信する 3 つの方法
1. Excel でセル値が変更された場合に VBA を使用して電子メールを送信する
最初の方法では、Excel VBA 送信するコード メール 状態の場合 満たされている .まず、 VBA モジュール を立ち上げます ウィンドウにコードを入力して実行し、メールを送信します。 .さらに、この場合、コード実行基準はセル値が変更されたときになります。
手順:
- まず、右クリック 「セル値の変更」について 」シート。
- 次に、[コードを表示] を選択します .
- 次に、このコードを入力してください。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Application.Intersect(Range("D5"), Target) Is Nothing Then
If IsNumeric(Target.Value) And Target.Value > 700 Then
Call Send_Email_Condition_Cell_Value_Change
End If
End If
End Sub
VBA コードの内訳
ここでは、非公開サブスクを使用します . マクロを介してこのコードを実行しないため 窓。このコードは セル がある場合に実行されます 値の変更。
- まず、Private Sub を使用します イベントは Worksheet_Change です .
- 次に、セルの数を制限しています 1 に そしてその セル D5 です .
- 3 番目に、700 を超えているかどうかを確認しています .
- 最後に、条件が Sub Procedure が満たされている場合 Send_Email_Condition_Cell_Value_Change 実行します。
- 最後に 保存 このウィンドウを閉じてください。
次に、 モジュール にコードを入力します 窓。 VBA モジュールを起動するには 、これらに従ってください–
- まず、開発者から タブ>>> Visual Basic を選択 .
または、ALT + F11 を押すこともできます VBA を表示するには ウィンドウ。
- 次に 挿入 から>>> モジュールを選択 .
このウィンドウにコードを入力します。
- 次のコードを入力してください。
Sub Send_Email_Condition_Cell_Value_Change()
Dim pApp As Object
Dim pMail As Object
Dim pBody As String
Set pApp = CreateObject("Outlook.Application")
Set pMail = pApp.CreateItem(0)
pBody = "Hello, " & Range("B5").Value & vbNewLine & _
"You've Payment Due." & vbNewLine & _
"Please Pay it to avoid extra fees."
On Error Resume Next
With pMail
.To = Range("C5").Value
.CC = ""
.BCC = ""
.Subject = "Request For Payment"
.Body = pBody
.Display 'We can use .Send to Send the Email
End With
On Error GoTo 0
Set pMail = Nothing
Set pApp = Nothing
End Sub
VBA コードの内訳
- まず、サブ プロシージャを呼び出します Send_Email_Condition_Cell_Value_Change .
- 次に、変数を宣言しています タイプ。
- 3 番目に、Outlook を選択します メール アプリケーションとして .
- 次に、メール コンテンツはコードで設定されます。
- その後、「.Display 」は、ここで メール を表示するために使用されます .したがって、[送信] を押す必要があります。 手動で 送信 メール .さらに、「.Send」を使用できます 」 メールを送信
- その後、保存 モジュールを閉じます .
これで、データセットに 699 と入力できます 、そして何も起こりません。
ただし、 801 と入力すると (700 以上 )、その後、コードが実行されます。
Outlook メール 送信オプションが表示されます。 [送信] を押すことができます 送る メール
続きを読む: Excel リストからメールを送信する方法 (効果的な 2 つの方法)
2.複数の条件が満たされた場合に VBA を使用して電子メールを送信する
2 番目の方法では、データセットを変更しました。 メールをお送りします 複数の 条件 満たされている この方法で。さらに、2 つのサブ プロシージャを使用します 単一の モジュール で このため。コードが意図したとおりに機能する場合は、 メールを送信 します 2まで 人。さらに、ファイルをメールに添付します .
手順:
- まず、最初の方法で示したように 、 モジュール を呼び出します ウィンドウにこのコードを入力してください。
Option Explicit
Sub Send_Email_Condition()
Dim xSheet As Worksheet
Dim mAddress As String, mSubject As String, eName As String
Dim eRow As Long, x As Long
Set xSheet = ThisWorkbook.Sheets("Conditions")
With xSheet
eRow = .Cells(.Rows.Count, 5).End(xlUp).Row
For x = 5 To eRow
If .Cells(x, 4) >= 1 And .Cells(x, 5) = "Yes" Then
mAddress = .Cells(x, 3)
mSubject = "Request For Payment"
eName = .Cells(x, 2)
Call Send_Email_With_Multiple_Condition(mAddress, mSubject, eName)
End If
Next x
End With
End Sub
Sub Send_Email_With_Multiple_Condition(mAddress As String, mSubject As String, eName As String)
Dim pApp As Object
Dim pMail As Object
Set pApp = CreateObject("Outlook.Application")
Set pMail = pApp.CreateItem(0)
With pMail
.To = mAddress
.CC = ""
.BCC = ""
.Subject = mSubject
.Body = "Mr./Mrs. " & eName & ", Please pay it within the next week."
.Attachments.Add ActiveWorkbook.FullName 'Send The File via Email
.Display 'We can use .Send here too
End With
Set pMail = Nothing
Set pApp = Nothing
End Sub
VBA コードの内訳
- まず、最初の Sub Procedure を呼び出します Send_Email_Condition .
- 次に、変数を宣言しています タイプと設定「条件」 」をシートとして .
- 3 番目に、最後の 行 番号が見つかりました。さらに、値は 行 5 から始まります 、したがって、 行 5 を配置しました 最後の 行 まで
- 次に、2 番目の Sub Procedure を呼び出します Send_Email_With_Multiple_Condition .
- その後、Outlook を選択します メール アプリケーションとして .
- 次に、メールを設定します コード内のコンテンツ
- ここに Excel を添付します メールを含むファイル 添付ファイルを使用 メソッド。
- その後、「.Display」 」は、ここで メール を表示するために使用されます .したがって、[送信] を押す必要があります。 手動で 送信 メール .さらに、「.Send」を使用できます 」 メールを送信
- 次に、保存 モジュールを閉じます .
マクロ コードを実行するためのウィンドウ。
- まず、開発者から タブ>>> マクロを選択 .
マクロ ウィンドウがポップアップします。
- 次に、「Send_Email_Condition」を選択します
- 最後に、[実行] を押します .
これにより、コードが実行されます。 2 人が 会った 私たちの状態 、したがって、2 つの メール が表示されます
続きを読む: Excel で条件が満たされたときにメールを自動的に送信する方法
類似の読み物
- Excel でワークブックの共有を有効にする方法
- Excel を使用して Outlook から一括メールを送信する方法 (3 つの方法)
- 本文付きの Excel からメールを送信するマクロ (3 つの便利なケース)
- マクロを適用して Excel から添付ファイル付きのメールを送信する方法
- Excel ファイルをオンラインで共有する方法 (2 つの簡単な方法)
3.日付条件に基づいて Excel でメールを送信
最後の方法として、メールを送信します。 締め切りが現在の日付から 1 週間以内の場合。今日は5月19日です 2022 年 この記事を書いている時点で。したがって、 行 は 1 つだけです それは7日以内に収まります。 行 5 です . お送りします メール VBA を使用してその人に コード。
手順:
- まず、最初の方法で示したように 、 モジュール を呼び出します ウィンドウにこのコードを入力してください。
Public Sub Send_Email_Date_Condition()
Dim rDate, rSend, rText As Range
Dim pApp, pItem As Object
Dim LRow, x As Long
Dim lineBreak, pBody, rSendValue, mSubject As String
On Error Resume Next
Set rDate = Application.InputBox("Select Deadline Range:", "Exceldemy", , , , , , 8)
If rDate Is Nothing Then Exit Sub
Set rSend = Application.InputBox("Select Email Range:", "Exceldemy", , , , , , 8)
If rSend Is Nothing Then Exit Sub
Set rText = Application.InputBox("Select Email Topic Range:", "Exceldemy", , , , , , 8)
If rText Is Nothing Then Exit Sub
LRow = rDate.Rows.Count
Set rDate = rDate(1)
Set rSend = rSend(1)
Set rText = rText(1)
Set pApp = CreateObject("Outlook.Application")
For x = 1 To LRow
rDateValue = ""
rDateValue = rDate.Offset(x - 1).Value
If rDateValue <> "" Then
If CDate(rDateValue) - Date <= 7 And CDate(rDateValue) - Date > 0 Then
rSendValue = rSend.Offset(x - 1).Value
mSubject = rText.Offset(x - 1).Value & " on " & rDateValue
lineBreak = "<br><br>"
pBody = "<HTML><BODY>"
pBody = pBody & "Dear " & rSendValue & lineBreak
pBody = pBody & rText.Offset(x - 1).Value & lineBreak
pBody = pBody & "</BODY></HTML>"
Set pItem = pApp.CreateItem(0)
With pItem
.Subject = mSubject
.To = rSendValue
.HTMLBody = pBody
.Display 'We can also use .Send here
End With
Set pItem = Nothing
End If
End If
Next
Set pApp = Nothing
End Sub
VBA コードの内訳
- まず、最初の Sub Procedure を呼び出します Send_Email_Date_Condition .
- 次に、変数を宣言しています タイプと設定「条件」 」をシートとして .
- 3 番目に、InputBox を使用しています 値の範囲を設定します。
- その後、Outlook を選択します メール アプリケーションとして .
- 次に、VBA CDate を使用しています 日付が現在の日付から 7 日以内かどうかをチェックする関数
- 次に、メールを設定します コード内のコンテンツ
- その後、「.Display」を使用します 」をクリックして、メールを表示します .したがって、[送信] を押す必要があります。 手動で 送信 メール .さらに、「.Send」を使用できます 」 メールを送信
- 次に、保存 モジュールを閉じます .
- 3 番目に、方法 2 に示すように 、 マクロ を呼び出します ウィンドウ。
- 次に、「Send_Email_Date_Condition」を選択します ” and press Run .
- Firstly, select the date column OK を押します .
- Secondly. select the email column OK を押します .
- Thirdly, select the email content column OK を押します .
- Then we’ll see the email ダイアログボックス。 We can press Send to achieve our goal.
続きを読む: How to Automatically Send Email from Excel Based on Date
覚えておくべきこと
- In all our methods, Outlook was our default email Application . You may need to use different codes for separate Applications .
練習セクション
We’ve added practice datasets for each method in the Excel ファイル。
結論
We’ve shown you 3 methods to send an email if conditions met エクセルで .読んでくれてありがとう。これからも頑張ってください!
関連記事
- How to Send Email from Excel with Body Using a Macro (with Easy Steps)
- Excel から Outlook に自動メールを送信する方法 (4 つの方法)
- セルの内容に基づいて Excel から電子メールを自動的に送信する (2 つの方法)
- Excel ファイルを電子メールで自動的に送信する方法 (3 つの適切な方法)
- VBA を使用して Excel ワークシートからリマインダー メールを自動的に送信する
- How to See Who Is in a Shared Excel File (With Quick Steps)
-
Excel で依存関係をトレースする方法 (2 つの簡単な方法)
Excel で作業中 、依存関係を追跡する方法を知ることが重要です 一連のデータで。 依存関係を追跡することを知る のデータが Excelに役立ちます ユーザーは、セル内のデータが他のセルにどのように依存しているかを知ることができます。 扶養家族の追跡 エクセルで 必要なときにワークブックを便利にします。この記事では、依存関係を追跡する方法を学びます。 エクセルで 2 つの簡単で便利な方法で。 練習用ワークブックをダウンロードして練習してください。 Excel で依存関係を追跡する 2 つの簡単な方法 ABC Traders の半年売上高のデータセットを見てみましょう .データセットは 3
-
Excel で複数の色でフィルター処理する方法 (2 つの簡単な方法)
この記事では、Microsoft Excel で複数の色でフィルター処理する方法について説明します .通常、特定の列を複数の色でフィルター処理すると、データセットに存在する他の列は、最初に適用されたフィルターに従ってフィルター処理されすぎます。複数の色でデータをフィルタリングするのは少し難しいです。ただし、2 つお見せします フィルタリングの適切な方法 投稿者 Excel の複数の色 適切なイラストで効果的です。 Excel で複数の色でフィルター処理する 2 つの適切な方法 複数の営業担当者を含む以下のデータセットがあるとします。 名前と販売地域、販売担当者の収益 B、C、 列に記載され