Excel VBAでセル変更時にOutlookメールを自動送信する
- Rin
- 6月13日
- 読了時間: 2分
更新日:6月19日

はじめに
こんにちは。ティーマネジメントのRinです。いよいよ梅雨突入でしょうか?
今年は家庭菜園に加え多肉植物も育てています。大きくなるのが楽しみで毎日眺めています!
みんな梅雨を元気に乗り切ってほしいものです。
話は変わりますがExcelで特定のセルが変更されたとき、自動でOutlookメールを送信できたら便利ですよね。
今回はVBA(マクロ)を使って、セルの値が変わったタイミングで自動的にメールを送信する方法をご紹介します。
できること
指定したセル(例:G4)が変更されたときに、Outlookメールを自動送信
宛先はセル(例:G3)の値を利用
メールの件名や本文も自由にカスタマイズ可能

サンプルコード
以下のコードを対象のシートのVBAエディタに貼り付けてください。
Option Explicit
' Worksheetの変更イベントを利用する
Private Sub Worksheet_Change(ByVal Target As Range)
' 監視するセルの範囲を指定(例:G4)
If Not Intersect(Target, Me.Range("G4")) Is Nothing Then
' セルG4の値が変更されたときの処理
MsgBox "対象セルの値が変更されました! 新しい値: " & Target.Value, vbInformation, "通知"
' Outlookアプリケーションのオブジェクトを作成
Dim OutlookApp As Object
Dim OutlookMail As Object
' Outlookを起動(既に起動している場合はそのインスタンスを使用)
Set OutlookApp = CreateObject("Outlook.Application")
' 新規メールの作成
Set OutlookMail = OutlookApp.CreateItem(0)
' メールのプロパティを設定
Dim メール送信先 As String
メール送信先 = Range("G3")
With OutlookMail
.To = メール送信先 ' 宛先
.Subject = "テストメール" ' 件名
.Body = "これはVBAから送信されたテストメールです。対象セルが変更されました" ' 本文
.Send ' メールを送信
End With
' メッセージボックスを表示
MsgBox "テストメール送信しました"
End If
End Sub
使い方
Excelファイルを開く
Alt + F11 でVBAエディタを開く
対象のシート(例:Sheet1)をダブルクリック
上記コードを貼り付けて保存
セルG4の値を変更してみる
注意点
Outlookがインストールされている必要があります。
最初のメール送信時にセキュリティ警告が出る場合があります。
実運用時は、テスト送信先や件名・本文を必ず調整してください。
まとめ
VBAを使えば、Excelの操作とOutlookの自動メール送信を連携させることができます。業務の自動化や通知の仕組み作りにぜひ活用してみてください!
おまけ:カスタマイズ例
宛先を複数指定したい場合は「;」や「,」で区切って入力
本文にセルの値を入れたい場合は Target.Value を使う
添付ファイルを付けたい場合は .Attachments.Add を活用