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

速攻でメモできる QuickNote リリースしました!

QuickNoteは動作が超軽量でサクサクかけるノートアプリです。一瞬の閃きを逃さずにノートを開き書き始めることができます。 アカウント登録も不要です。お試しあれ!

Excel操作をコマンドで! proBoarderExcel

Excelはマウスで操作するのが基本ですが、マウス操作に疲れてはいませんか? キーボードでExcel操作ができるようになるアプリです。オープンソースで無料です。

積み上げ! Daily Stack リリースしました!

Daily Stack は日々の積み上げを管理するToDoアプリです。過去の積み上げの振り返りだけでなく、ツイート機能もあります。 アカウント登録不要ですぐに使い始めることができます。

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱