k01ken’s b10g

He110 W0r1d!

VBAを使ってOutlookで自動でメールを送信する

開発環境は、Windows 10 Pro(64bit)。

前提条件としてOutlookがパソコン内にあること

VBA上でOutlookが使用できるように参照設定を行う

  1. Alt + F11で、VBAエディタを開いて、ヘッダー部分の[ツール] - [参照設定]をクリック
  2. Microsoft Outlook 14.0 Object Libraryにチェックを入れてOKボタンをクリック

※メールは、例えば、Aさんが、Bさんのメールアドレスを使って、Cさんのメールアドレスへメールを送信することができるので、送信元が必ずAさんでなければならないというわけじゃない。ただ、Bさんの代理でAさんが投稿しました』というメッセージが、自分のOutlookでは表示された。

Sub SendMail()
  Dim Outlookのオブジェクト As Outlook.Application
  Dim メールアイテム As Outlook.MailItem
  Const FullPathFileName As String = "絶対パス付きの添付ファイル名"
  Set Outlookのオブジェクト = CreateObject("Outlook.Application")
  Set メールアイテム = Outlookのオブジェクト.CreateItem(olMailItem)

  '宛先
  メールアイテム.SentOnBehalfOfName = "test <test@test.co.jp>"
  メールアイテム.To = "test@test.co.jp"

  'CC (複数のメールアドレスを指定する場合は、;で区切る)
  メールアイテム.CC = "test2@test.co.jp"

  '件名
  メールアイテム.Subject = "こんにちは"

  '本文
  メールアイテム.Body = "自動メール送信です"

  '添付ファイル
  メールアイテム.Attachments.Add(FullPathFileName)

  'メール表示
  メールアイテム.display

  '送信
  メールアイテム.Send

  'オブジェクトの解放
  Set Outlookのオブジェクト = Nothing
  Set メールアイテム = Nothing
End Sub


■参考リンク
VB メール操作
【エクセルVBA】Outlookでメールを作成・送信する方法
【VBA】Outlookから添付ファイルを付けてメールを送付する