メインコンテンツへスキップ

Excelでセルの値に基づいて自動的にメールを送信するにはどうすればよいですか?

Author: Siluvia Last Modified: 2025-08-06

Excelでは、特定の条件(特定のセルの値など)に基づいてメールを自動送信するプロセスを自動化できます。例えば、セルD7の値が200を超えたときにOutlook経由で自動的にメールを送信したい場合があります。このチュートリアルでは、VBA(Visual Basic for Applications)を使用して、セルの値に基づいてOutlookでメールをトリガーする方法を説明します。

VBAコードを使用してセルの値に基づいて自動的にメールを送信する


VBAコードを使用してセルの値に基づいて自動的にメールを送信する

以下のように操作して、Excelでセルの値に基づいてメールを送信してください。

1. メールを送信する必要があるワークシート(ここではセルD7と仮定)で、シートタブを右クリックし、コンテキストメニューから「コードの表示」を選択します。スクリーンショットをご覧ください:

A screenshot of the context menu in Excel showing the View Code option for a worksheet

2. 表示されたMicrosoft Visual Basic for Applicationsウィンドウで、以下のVBAコードをコピーしてシートコードウィンドウに貼り付けてください。

VBAコード: Excelのセル値に基づいてOutlook経由でメールを送信する

Dim xRg As Range
'Update by Extendoffice 2018/3/7
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Cells.Count > 1 Then Exit Sub
  Set xRg = Intersect(Range("D7"), Target)
    If xRg Is Nothing Then Exit Sub
    If IsNumeric(Target.Value) And Target.Value > 200 Then
        Call Mail_small_Text_Outlook
    End If
End Sub
Sub Mail_small_Text_Outlook()
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xMailBody = "Hi there" & vbNewLine & vbNewLine & _
              "This is line 1" & vbNewLine & _
              "This is line 2"
    On Error Resume Next
    With xOutMail
        .To = "Email Address"
        .CC = ""
        .BCC = ""
        .Subject = "send by cell value test"
        .Body = xMailBody
        .Display   'or use .Send
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

注意:

1) VBAコードでは、D7value > 200は、メールを送信する基準となるセルとセルの値です。
2) コード内の xMailBody行で、必要に応じてメール本文を変更してください。
3) .To = "Email Address" の行で、受信者のメールアドレスに「Email Address」を置き換えてください。
4) 必要に応じて、.CC = “” および Bcc = “” セクションでCcとBccの受信者を指定してください。
5) 最後に、.Subject = "send by cell value test" の行でメールの件名を変更してください。

3. Alt + Qキーを同時に押して、Microsoft Visual Basic for Applicationsウィンドウを閉じます。

これで、セルD7に入力された値が200より大きくなった場合、指定された受信者や本文を持つメールがOutlookで自動的に作成されます。「送信」ボタンをクリックすると、このメールを送信できます。スクリーンショットをご覧ください:

A screenshot showing an email draft in Outlook created automatically from an Excel cell value

注意:

1. このVBAコードは、Outlookをメールプログラムとして使用している場合にのみ動作します。

2. セルD7に入力されたデータがテキスト値の場合でも、メールウィンドウがポップアップ表示されます。


Excelで作成されたメーリングリストのフィールドに基づいて、簡単にOutlook経由でメールを送信する:

Kutools for Excelの「電子メールを送信」機能は、ユーザーがExcelで作成されたメーリングリストに基づいてOutlook経由でメールを送信することを支援します。

A screenshot of Kutools for Excel's Send Emails utility interface

Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できるAI機能もお楽しみください!今すぐ入手


関連記事:

最高のオフィス生産性ツール

🤖 Kutools AI Aide:データ分析を革新:インテリジェント実行   |  コード生成  |  カスタム数式の作成  |  データを分析してグラフを生成  |  Kutools Functions を呼び出す
人気機能重複の検索・ハイライト・マーキング   |  空白行を削除   |  データを失わず列やセルを統合   |   丸める ...
スーパーLOOKUP複数条件VLOOKUP   複数値VLOOKUP  |  複数シートの検索  |  ファジーマッチ ....
高度なドロップダウンリストすばやくドロップダウンリストを作成   |  依存型ドロップダウンリスト   |  複数選択ドロップダウンリスト ....
列の管理:特定数の列を追加  | 列を移動  | 非表示列の表示状態を切り替え |  範囲と列の比較 ...
注目機能グリッドフォーカス   |  デザインビュー  |  強化された数式バー   ワークブック&ワークシートの管理   |  オートテキスト ライブラリ (Auto Text)   |  日付ピッカー   |  データの統合   |  セルの暗号化/復号化    リスト送信で電子メールを送信   |  スーパーフィルター   |   特殊フィルタ(太字/斜体/取り消し線でフィルタ...)
トップ15ツールセット12 種類のテキストツールテキストの追加特定の文字を削除など)  |  50 種以上のグラフ タイプガントチャートなど)  |  40を超える実用的な 数式誕生日に基づいて年齢を計算する、など)  |  19種の 挿入ツールQRコードの挿入パスから画像の挿入など)  |  12種類の 変換ツール単語に変換する通貨変換など)  |  7つの 結合&分割ツール高度な行のマージセルの分割など)  |  ...さらに多数
お好きな言語でKutoolsを使用できます ― 英語、スペイン語、ドイツ語、フランス語、中国語など40以上に対応!

Kutools for ExcelでExcelスキルを強化し、かつてない効率を体験しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と時間短縮を実現します。最も必要な機能を今すぐ取得...


Office TabはOfficeにタブ表示を追加し、作業効率を大幅に向上させます

  • Word、Excel、PowerPointでタブ編集とタブ閲覧を有効にします
  • 同じウィンドウ内の新しいタブで複数のドキュメントを開いたり作成したりできます。新しいウィンドウを開く必要はありません。
  • 生産性が50%向上し、1日に何百回ものマウスクリックも削減できます!