Excel で期限日が過ぎたら自動的にメールを送信するには、どうすればよいですか?
以下のスクリーンショットに示すように、列 C の期限日が現在日付(例:2017/9/13)から7 日以内の場合、列 A で指定された受信者宛てにメールが自動送信され、そのメール本文には列 B で指定された内容が表示されます。この処理を実現するにはどうすればよいでしょうか?本記事では、このタスクを実行するための VBA コードをご紹介します。

VBA コードを使用して期限日が満たされた場合にメールを送信する
VBA コードを使用して期限日が満たされた場合にメールを送信する
Excel で期限日が到来した際にメールによるリマインダーを送信するには、次の手順に従ってください。
1。Alt+F11キーを同時に押して、Microsoft Visual Basic for Applicationsウィンドウを開きます。
2。Microsoft Visual Basic for Applicationsウィンドウで、挿入 > モジュールをクリックした後、以下の VBA コードをモジュールウィンドウにコピー&ペーストしてください。
VBA コード:Excel で期限日が閉じられた場合にメールを送信する
Public Sub CheckAndSendMail()
'Updated by Extendoffice 2018/11/22
Dim xRgDate As Range
Dim xRgSend As Range
Dim xRgText As Range
Dim xRgDone As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xLastRow As Long
Dim vbCrLf As String
Dim xMailBody As String
Dim xRgDateVal As String
Dim xRgSendVal As String
Dim xMailSubject As String
Dim i As Long
On Error Resume Next
Set xRgDate = Application.InputBox("Please select the due date column:", "KuTools For Excel", , , , , , 8)
If xRgDate Is Nothing Then Exit Sub
Set xRgSend = Application.InputBox("Please select the recipients?email column:", "KuTools For Excel", , , , , , 8)
If xRgSend Is Nothing Then Exit Sub
Set xRgText = Application.InputBox("Select the column with reminded content in your email:", "KuTools For Excel", , , , , , 8)
If xRgText Is Nothing Then Exit Sub
xLastRow = xRgDate.Rows.count
Set xRgDate = xRgDate(1)
Set xRgSend = xRgSend(1)
Set xRgText = xRgText(1)
Set xOutApp = CreateObject("Outlook.Application")
For i = 1 To xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
If xRgDateVal <> "" Then
If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
vbCrLf = "<br><br>"
xMailBody = "<HTML><BODY>"
xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Text : " & xRgText.Offset(i - 1).Value & vbCrLf
xMailBody = xMailBody & "</BODY></HTML>"
Set xMailItem = xOutApp.CreateItem(0)
With xMailItem
.Subject = xMailSubject
.To = xRgSendVal
.HTMLBody = xMailBody
.Display
'.Send
End With
Set xMailItem = Nothing
End If
End If
Next
Set xOutApp = Nothing
End Sub 注記:VBA コード内の行 If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0Then は、期限日が本日より後で、かつ7 日以内であることを意味します。必要に応じて変更できます。
3。F5 キーを押してコードを実行します。Kutools for Excelダイアログボックスが最初に表示されたら、期限日の列範囲を選択し、OKボタンをクリックしてください。スクリーンショットを参照してください:

4。次に、2 つ目のKutools for Excelダイアログボックスが表示されます。受信者のメールアドレスを含む対応する列範囲を選択し、OKボタンをクリックしてください。スクリーンショットを参照してください:

5。最後のKutools for Excelダイアログボックスで、メール本文に表示したい内容を選択して、OKボタンをクリックします。

列 C の期限日が7 日以内の場合、指定された宛先・件名・本文を含んだメールが自動的に作成されます。送信ボタンをクリックして、すぐにメールを送信してください。

注記:
1。作成される各メールは、1 つの期限日に対応しています。たとえば、条件を満たす期限日が3 つある場合は、自動的にメールが3 通作成されます。
2。条件を満たす日付が存在しない場合、このコードは実行されません。
3。この VBA コードは、メールプログラムにOutlook を使用している場合にのみご利用いただけます。

KUTOOLS AI でExcel の魔法を解き放ちましょう
- スマート実行:セル操作、データ分析、チャート作成をすべてシンプルなコマンドで実現します。
- カスタム数式:ワークフローの効率化に役立つ、あなただけのカスタマイズ数式を生成します。
- VBA コーディング:VBA コードを簡単に記述・実装できます。
- 数式の解釈:複雑な数式が簡単に理解できます。
- テキスト翻訳:スプレッドシート内で言語の壁を乗り越えましょう!
関連記事:
- Excel でセルの値に基づいてメールを自動送信するには、どうすればよいでしょうか?
- Excel でブックを保存した際に、Outlook 経由でメールを自動送信するにはどうすればよいですか?
- Excel で特定のセルが変更された際にメールを送信するには、どのように設定すればよいでしょうか?
- Excel でボタンをクリックした際にメールを送信するには、どうすればよいですか?
- Excel でブックが更新された際に、メールによるリマインダーや通知を送信するにはどうすればよいですか?
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気の機能:検索・ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲および列の比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的関数(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|さらに多数 |
Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。
Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします
- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!
すべてのKutools アドインが、たった1 つのインストーラーで完結。
Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得