こちらに「メール本文をHTML形式にして表やリンクを埋め込む」VBAサンプルをまとめました。
OutlookメールをHTML形式で作成すれば、文字装飾・表組み・リンク挿入が可能になります。
サンプル1:HTML形式で文字装飾
Sub SendHtmlMail_Basic()
Dim outlookApp As Object, mailItem As Object
Set outlookApp = CreateObject("Outlook.Application")
Set mailItem = outlookApp.CreateItem(0)
With mailItem
.To = "user@company.com"
.Subject = "HTML形式メールのテスト"
.HTMLBody = "<p><b><span style='color:blue;'>お知らせ</span></b></p>" & _
"<p>このメールは <u>HTML形式</u> で送信されています。</p>"
.Display ' 確認後に送信したい場合は .Display、即送信なら .Send
End With
End Sub
VB👉 太字・色・下線などの装飾が可能。
サンプル2:本文に表を埋め込む
Sub SendHtmlMail_Table()
Dim outlookApp As Object, mailItem As Object
Dim html As String
html = "<p>売上報告</p>" & _
"<table border='1' style='border-collapse:collapse;'>" & _
"<tr><th>商品</th><th>数量</th><th>金額</th></tr>" & _
"<tr><td>商品A</td><td>10</td><td>50,000円</td></tr>" & _
"<tr><td>商品B</td><td>5</td><td>25,000円</td></tr>" & _
"</table>"
Set outlookApp = CreateObject("Outlook.Application")
Set mailItem = outlookApp.CreateItem(0)
With mailItem
.To = "user@company.com"
.Subject = "売上報告(HTML表付き)"
.HTMLBody = html
.Display
End With
End Sub
VB👉 HTMLの<table>タグを使って表を本文に埋め込み。
サンプル3:本文にリンクを埋め込む
Sub SendHtmlMail_Link()
Dim outlookApp As Object, mailItem As Object
Dim html As String
html = "<p>以下のリンクからレポートを確認できます:</p>" & _
"<p><a href='https://www.example.com/report' target='_blank'>レポートはこちら</a></p>"
Set outlookApp = CreateObject("Outlook.Application")
Set mailItem = outlookApp.CreateItem(0)
With mailItem
.To = "user@company.com"
.Subject = "レポート確認用リンク"
.HTMLBody = html
.Display
End With
End Sub
VB👉 クリック可能なリンクを本文に挿入。
サンプル4:表+リンク+装飾を組み合わせ
Sub SendHtmlMail_Complex()
Dim outlookApp As Object, mailItem As Object
Dim html As String
html = "<h2 style='color:darkgreen;'>週次レポート</h2>" & _
"<p>以下は今週の売上データです。</p>" & _
"<table border='1' style='border-collapse:collapse;'>" & _
"<tr><th>商品</th><th>数量</th><th>金額</th></tr>" & _
"<tr><td>商品A</td><td>12</td><td>60,000円</td></tr>" & _
"<tr><td>商品B</td><td>8</td><td>40,000円</td></tr>" & _
"</table>" & _
"<p>詳細は <a href='https://www.example.com/detail'>こちら</a> をご覧ください。</p>"
Set outlookApp = CreateObject("Outlook.Application")
Set mailItem = outlookApp.CreateItem(0)
With mailItem
.To = "user@company.com"
.Subject = "週次売上レポート"
.HTMLBody = html
.Display
End With
End Sub
VB👉 見出し+表+リンクを組み合わせた実務的なHTMLメール。
✅ まとめ
- HTMLBodyプロパティを使うと、文字装飾・表・リンクが自由に使える
- 表形式のデータ送信やレポートリンク通知に最適
.Displayで確認後送信、.Sendで即送信を選択可能
💡 この仕組みを応用すれば、ExcelのデータをHTML表に変換してメール本文に埋め込むこともできます。

