外部連携 × Outlook連携(メール送信)
Excel VBAから Outlookを操作してメールを送信 することで、Excelを「メール送信のフロント」として活用できます。
例えば「シートの内容をメールで送る」「定型文を自動送信する」など、業務効率化に直結します。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。
基本の考え方
- Outlook連携の流れ
- VBAでOutlookアプリケーションを起動
- 新しいメールオブジェクトを作成
- 宛先・件名・本文を設定
- 添付ファイルを追加(必要に応じて)
Sendで送信
- 用途例:
- Excelのデータをメールで送信
- 定型報告メールを自動化
- ファイルを添付して送信
テンプレ1:シンプルなメール送信
Sub SendMail_Basic()
Dim outlookApp As Object
Dim mail As Object
' Outlook起動
Set outlookApp = CreateObject("Outlook.Application")
' 新規メール作成
Set mail = outlookApp.CreateItem(0)
' 宛先・件名・本文を設定
With mail
.To = "example@example.com"
.Subject = "テストメール"
.Body = "これはExcel VBAから送信したテストメールです。"
.Send ' 送信
End With
MsgBox "メールを送信しました!"
End Sub
VB- ポイント:
.Toに宛先メールアドレスを指定。.Sendで即送信。
テンプレ2:本文をHTML形式で送信
Sub SendMail_HTML()
Dim outlookApp As Object
Dim mail As Object
Set outlookApp = CreateObject("Outlook.Application")
Set mail = outlookApp.CreateItem(0)
With mail
.To = "example@example.com"
.Subject = "HTMLメール"
.HTMLBody = "<h2>お知らせ</h2><p>これは<strong>HTML形式</strong>のメールです。</p>"
.Send
End With
MsgBox "HTMLメールを送信しました!"
End Sub
VB- ポイント:
.HTMLBodyを使うとHTML形式で送信可能。- 太字や見出しなど装飾ができる。
テンプレ3:添付ファイル付きメール送信
Sub SendMail_WithAttachment()
Dim outlookApp As Object
Dim mail As Object
Dim filePath As String
filePath = "C:\temp\report.xlsx"
Set outlookApp = CreateObject("Outlook.Application")
Set mail = outlookApp.CreateItem(0)
With mail
.To = "example@example.com"
.Subject = "レポート送付"
.Body = "レポートを添付します。ご確認ください。"
.Attachments.Add filePath
.Send
End With
MsgBox "添付ファイル付きメールを送信しました!"
End Sub
VB- ポイント:
.Attachments.Add ファイルパスで添付可能。- Excelで作成したファイルをそのまま送れる。
テンプレ4:シートの値を本文に組み込む(実務向け)
Sub SendMail_FromSheet()
Dim outlookApp As Object
Dim mail As Object
Dim ws As Worksheet: Set ws = Worksheets("Data")
Dim reportText As String
' シートの値を本文に組み込む
reportText = "本日の売上は " & ws.Range("B2").Value & " 円です。"
Set outlookApp = CreateObject("Outlook.Application")
Set mail = outlookApp.CreateItem(0)
With mail
.To = "example@example.com"
.Subject = "日次報告"
.Body = reportText
.Send
End With
MsgBox "シートの値を本文に組み込んで送信しました!"
End Sub
VB- ポイント:
- Excelのセル値を文字列連結で本文に組み込む。
- 日次報告や定型メールに便利。
例題で練習
'例1:シンプルなメール送信
'例2:HTML形式で送信
'例3:添付ファイル付きで送信
'例4:シートの値を本文に組み込んで送信
VB初心者向けポイント
- Outlook.Applicationを作成して操作 → VBAからOutlookを呼び出す。
- .To, .Subject, .Bodyで基本設定 → 最低限これで送信可能。
- HTMLBodyで装飾メールも可能 → 見やすいメールにできる。
- Attachments.Addで添付ファイル送信 → Excelファイルをそのまま送れる。
- シートの値を本文に組み込むと実務で便利 → 報告メールの自動化に直結。
👉 この「外部連携 × Outlook連携(送信)テンプレ」を覚えておけば、Excel VBAで 定型メール送信や報告メール自動化 を簡単に作成できます。
