VBA 通知メール拡張版(HTMLメールで見やすくする)
これまでの通知は テキストメール でしたが、HTML形式にすると 見出し・色・表形式 を使えて、管理者が一目で状況を把握できます。以下は「成功/失敗通知をHTMLメールで送る」拡張版です。
HTMLメール送信サンプル(CDO.Message)
Option Explicit
'=== HTMLメール送信(成功通知) ===
Sub SendSuccessMailHTML(successMsg As String)
Dim objMsg As Object
Dim objConf As Object
Set objMsg = CreateObject("CDO.Message")
Set objConf = CreateObject("CDO.Configuration")
' SMTP設定(例:Office365)
With objConf.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.office365.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "your_account@domain.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "your_password"
.Update
End With
With objMsg
Set .Configuration = objConf
.From = "your_account@domain.com"
.To = "admin@domain.com"
.Subject = "【VBAタスク成功通知】"
' HTML本文
.HTMLBody = _
"<html><body>" & _
"<h2 style='color:green;'>✅ VBAタスク成功通知</h2>" & _
"<p><b>処理が正常終了しました。</b></p>" & _
"<table border='1' cellpadding='5' style='border-collapse:collapse;'>" & _
"<tr><th>日時</th><td>" & Format(Now, "yyyy/mm/dd hh:nn:ss") & "</td></tr>" & _
"<tr><th>詳細</th><td>" & successMsg & "</td></tr>" & _
"</table>" & _
"</body></html>"
.Send
End With
End Sub
'=== HTMLメール送信(エラー通知) ===
Sub SendErrorMailHTML(errMsg As String)
Dim objMsg As Object
Dim objConf As Object
Set objMsg = CreateObject("CDO.Message")
Set objConf = CreateObject("CDO.Configuration")
' SMTP設定(同上)
With objConf.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.office365.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "your_account@domain.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "your_password"
.Update
End With
With objMsg
Set .Configuration = objConf
.From = "your_account@domain.com"
.To = "admin@domain.com"
.Subject = "【VBAタスクエラー通知】"
' HTML本文
.HTMLBody = _
"<html><body>" & _
"<h2 style='color:red;'>❌ VBAタスクエラー通知</h2>" & _
"<p><b>エラーが発生しました。</b></p>" & _
"<table border='1' cellpadding='5' style='border-collapse:collapse;'>" & _
"<tr><th>日時</th><td>" & Format(Now, "yyyy/mm/dd hh:nn:ss") & "</td></tr>" & _
"<tr><th>エラー詳細</th><td>" & errMsg & "</td></tr>" & _
"</table>" & _
"</body></html>"
.Send
End With
End Sub
VBこの拡張版のポイント
- HTML本文を利用 → 見出し・色・表形式で見やすい
- 成功通知は緑色、エラー通知は赤色で強調
- テーブル形式で日時や詳細を整理
- 管理者が一目で状況を把握可能
実務でのメリット
- メール本文が整形されているため、可読性が高い
- 成功/失敗が色で区別されるので、直感的に分かる
- テーブル形式でログ情報を整理できるので、監査や報告に便利
✅ まとめ
- HTMLメール通知で見やすさを改善
- 成功/失敗を色分け+テーブル形式で管理者に分かりやすく通知
- タスクスケジューラと組み合わせれば、完全自動監視+見やすい通知が実現


