Excelでセルの値に基づいてメールを自動送信する2つの方法(VBA&差し込み印刷)
Excel(エクセル)のワークシートには、さまざまな情報を保存しています。例えば、重要な取引先や担当者のメールアドレスを管理している方も多いのではないでしょうか。通常、メールの送信はOutlookやGmailから直接行うのが手軽ですが、「セルに入力された内容に応じて自動的にメールを送りたい」という場面では、Microsoft Excelを活用すると非常に効率的です。本記事では、セルの内容に基づいてExcelからメールを自動送信するための、実用的な2つの方法を分かりやすい図解付きでご紹介します。
セルの内容に基づいてExcelからメールを自動送信する2つの方法
ここでは、Armani Groupの複数の営業担当者に関する情報が記録された大きなワークシートを例に説明します。B列には営業担当者の氏名、C列には社員番号(ID)、D列には担当製品、E列には売上高がそれぞれ入力されています。このデータセットをもとに、MS Wordの「差し込み印刷」機能とVBAマクロを使用して、セルの内容に応じたメールをExcelから送信する方法を学びましょう。以下は、今回使用するデータセットの概要です。

方法1:VBAコードを実行してセルの内容に基づきメールを自動送信する
まず最初に、シンプルなVBAコードを使って、セルの内容に基づいてExcelからメールを自動送信する方法をご紹介します。特定の条件を満たしたときに自動で通知を送りたい場合などに特に便利な手法です。今回は、「セルD6の値が400より大きくなったら、自動的にメールを作成する」というコードを書いていきます。以下の手順に従って進めてください。
ステップ1:
- まず、モジュールを開きます。[開発]タブから以下を選択してください。
開発 → Visual Basic

- [Visual Basic]をクリックすると、「Microsoft Visual Basic for Applications」ウィンドウが即座に表示されます。このウィンドウで、VBAコードを記述するためのモジュールを挿入します。
挿入 → 標準モジュール

ステップ2:
- 「Send Mail from Excel」という名前のモジュールが表示されます。このモジュールに、以下の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("D6"), Target)
If R Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 400 Then
Call send_mail_outlook
End If
End Sub
Sub send_mail_outlook()
Dim x As Object
Dim y As Object
Dim z As String
Set x = CreateObject("Outlook.Application")
Set y = x.CreateItem(0)
z = "Hello!" & vbNewLine & vbNewLine & _
"Hope you are well" & vbNewLine & _
"Visit our Exceldemy site"
On Error Resume Next
With y
.To = "Address"
.cc = ""
.BCC = ""
.Subject = "send mail based on cell value"
.Body = z
.Display
End With
On Error GoTo 0
Set y = Nothing
Set x = Nothing
End Sub

- 続いて、VBAコードを実行します。
実行 → Sub/ユーザーフォームの実行

- VBAコードを実行すると、以降はセルD6の値が400を超えるたびに、指定した宛先宛てのメールがOutlookで自動的に作成されます。あとは[送信]ボタンをクリックするだけでメールを送れます(下のスクリーンショット参照)。

関連記事: 条件を満たしたときにExcelからメールを自動送信する方法
こちらもおすすめ
- VBAを使ってExcelワークシートからリマインダーメールを自動送信する
- 【解決済み】Excelで「ブックの共有」が表示されないときの対処法(簡単な手順)
- 共有Excelファイルで誰が編集しているか確認する方法(クイックステップ)
- OutlookとExcelを使って一括メール送信を行う3つの方法
- マクロで添付ファイル付きのメールをExcelから送信する方法
方法2:Wordの差し込み印刷機能を使ってメールを自動送信する
2つ目の方法では、MS Wordの「差し込み印刷」機能を利用して、Excelスプレッドシートのデータをもとに複数のメールを一括送信します。以下の手順に従って進めてください。
ステップ1:
- まず、Wordファイルを開き、送信したいメッセージを入力します。

- 次に、[差し込み文書]タブから以下を選択します。
差し込み文書 ➤ 受信者の選択 ➤ 既存のリストを使用

- すると「データソースの選択」ダイアログボックスが表示されます。メールアドレスが保存されているExcelファイルを選択し、最後に[開く]をクリックします。

- 続いて「テーブルの選択」ダイアログボックスが表示されるので、目的のシートを選んで[OK]をクリックします。

ステップ2:
- 次に、メールごとに置き換えたい単語を選択します。この例では「Carl」を選択します。[差し込み文書]タブから以下を選択してください。
差し込み文書 → 文章とフィールドの挿入 → 差し込みフィールドの挿入 → Sales_Rep

- これで、下図のようにメッセージが差し込みフィールドに置き換えられます。

- また、受信者の視点でメールのプレビューを確認したい場合は、[結果のプレビュー]をクリックします。

- その後、[差し込み文書]タブから以下を選択します。
差し込み文書 → 完了 → 完了して差し込む → メールメッセージの送信

- すると「電子メールへの差し込み」ダイアログボックスが表示されます。[宛先]フィールドでヘッダーの「Sales_Rep」を選択し、必要に応じて件名(例:Greetings)を入力します。最後に[OK]をクリックすると、すべての受信者にメールが一括送信されます。

関連記事: Excelファイルをメールで自動送信する方法(3つの適切な方法)
注意点
👉 [Alt] + [F11]キーを同時に押すことで、「Microsoft Visual Basic for Applications」ウィンドウをすぐに開くことができます。
👉 リボンに[開発]タブが表示されていない場合は、設定を変更することで表示できます。その際は以下の手順に従ってください。
ファイル → オプション → リボンのユーザー設定
まとめ
本記事でご紹介した、VBAコードやWordの差し込み印刷を活用してセルの内容に基づいてExcelからメールを自動送信する2つの方法が、皆さんのExcel作業の生産性向上につながれば幸いです。ご不明な点や質問がある場合は、お気軽にコメントをお寄せください。
関連記事
- 条件を満たした場合にExcelからメールを送信する方法(3つの簡単な方法)
- マクロを使って本文付きのメールをExcelから送信する方法(簡単な手順)
- Excelマクロ:セル内のアドレスにメールを送信する(2つの簡単な方法)
- 日付に基づいてExcelからメールを自動送信する方法
- 本文付きでExcelからメールを送信するマクロ(3つの活用例)
- Excelのリストからメールを送信する方法(2つの効果的な方法)
-
Excelのリストからメールを一括送信する2つの効果的な方法
大勢の人に一括メールを送りたいとき、繰り返し作業を素早く処理できる自動化の仕組みが必要になります。メールアドレスの一覧をまとめたExcelファイルを作成するのが、一括メール送信の最も一般的な方法です。このチュートリアルでは、Excelのリストから多数の相手へ自動的にメールを送信する方法を、2つのアプローチで詳しく解説します。 Excelリストからメールを送信する2つの便利な方法 下の画像には、氏名・メールアドレス・登録番号を含むデータセットが用意されています。このExcelリストから、それぞれの相手に個別のメールを送信していきます。そのために、まずMicrosoft Wordの差し込み印刷機能
-
Excelでセルの値に基づいてメールを自動送信する2つの方法(VBA&差し込み印刷)
Excel(エクセル)のワークシートには、さまざまな情報を保存しています。例えば、重要な取引先や担当者のメールアドレスを管理している方も多いのではないでしょうか。通常、メールの送信はOutlookやGmailから直接行うのが手軽ですが、「セルに入力された内容に応じて自動的にメールを送りたい」という場面では、Microsoft Excelを活用すると非常に効率的です。本記事では、セルの内容に基づいてExcelからメールを自動送信するための、実用的な2つの方法を分かりやすい図解付きでご紹介します。 セルの内容に基づいてExcelからメールを自動送信する2つの方法 ここでは、Armani Group