Excel VBA 逆引き集 | Outlook連携(送信)

Excel VBA
スポンサーリンク

外部連携 × Outlook連携(メール送信)

Excel VBAから Outlookを操作してメールを送信 することで、Excelを「メール送信のフロント」として活用できます。
例えば「シートの内容をメールで送る」「定型文を自動送信する」など、業務効率化に直結します。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。


基本の考え方

  • Outlook連携の流れ
    1. VBAでOutlookアプリケーションを起動
    2. 新しいメールオブジェクトを作成
    3. 宛先・件名・本文を設定
    4. 添付ファイルを追加(必要に応じて)
    5. 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で 定型メール送信や報告メール自動化 を簡単に作成できます。

タイトルとURLをコピーしました