ExcelVBAでOutlookクライアントから自動的にメールを送信する

ExcelVBAからOutlookクライアントアプリを使用して、メールを自動的に送信することができます。

ユーザーに送信ボタンをクリックさせることなく、バックグラウンドで送信まで行います。

0. この記事のまとめ

Microsoft Outlook Object Library を使用します。

olMailItemオブジェクトのSendメソッドを使用することで、送信が行われます。

    Dim ObjOutlook As Outlook.Application
    Dim ObjMail As Outlook.MailItem
    Set ObjOutlook = New Outlook.Application
    Set ObjMail = ObjOutlook.CreateItem(olMailItem)

    ObjMail.To = "aaa@bbb.com; ccc@ddd.com"
    ObjMail.CC = "aaa@bbb.com; ccc@ddd.com"
    ObjMail.Subject = "メール件名"
    ObjMail.Body = "メール本文"

    ObjMail.Send

1. メールを送信するのは、Sendメソッド

Outlookメールを送信するのは、ObjOutlook.CreateItem(olMailItem)で作成されたオブジェクトのSendメソッドです。

以下のコードの中でObjMail.Sendがこれに該当します。


    Dim ObjOutlook As Outlook.Application
    Dim ObjMail As Outlook.MailItem
    Set ObjOutlook = New Outlook.Application
    Set ObjMail = ObjOutlook.CreateItem(olMailItem)

    ObjMail.To = "aaa@bbb.com; ccc@ddd.com"
    ObjMail.CC = "aaa@bbb.com; ccc@ddd.com"
    ObjMail.Subject = "メール件名"
    ObjMail.Body = "メール本文"

    ObjMail.Send

2. 宛先は「To」プロパティ

宛先メールアドレスは、Toプロパティで指定します。

    ObjMail.To = "aaa@bbb.com; ccc@ddd.com"

3. Ccは「CC」プロパティ

CCメールアドレスは、CCプロパティで指定します。

    ObjMail.CC = "aaa@bbb.com; ccc@ddd.com"

4. BCcは「BCC」プロパティ

CCメールアドレスは、CCプロパティで指定します。

    ObjMail.BCC = "aaa@bbb.com; ccc@ddd.com"

5. 送信せずにメール送信画面を表示するときは、「Display」メソッド

直接送信せずに、メール送信画面を表示するには、Displayメソッドを使用します。

    Dim ObjOutlook As Outlook.Application
    Dim ObjMail As Outlook.MailItem
    Set ObjOutlook = New Outlook.Application
    Set ObjMail = ObjOutlook.CreateItem(olMailItem)

    ObjMail.To = "aaa@bbb.com; ccc@ddd.com"
    ObjMail.CC = "aaa@bbb.com; ccc@ddd.com"
    ObjMail.Subject = "メール件名"
    ObjMail.Body = "メール本文"

    ObjMail.Display

6. メール本文形式を変更するときは「BodyFormat」プロパティ

メール本文形式は、以下から選択できます

  • テキスト形式
  • リッチテキスト形式
  • HTML形式

これらは、BodyFormatプロパティから指定できます。

メール形式 プロパティ名称
テキスト形式 olFormatPlain
リッチテキスト形式 olFormatRichText
HTML形式 olFormatHTML
    ObjMail.BodyFormat = olFormatPlain
カテゴリー: VBA

コメントを残す

メールアドレスが公開されることはありません。