\

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

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

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

0. この記事のまとめ

Microsoft Outlook Object Library を使用します。

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

1
2
3
4
5
6
7
8
9
10
11
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がこれに該当します。

1
2
3
4
5
6
7
8
9
10
11
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プロパティで指定します。

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

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

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

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

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

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
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
1
ObjMail.BodyFormat = olFormatPlain

コメントシステムを導入しました!コメント頂けると嬉しすぎて、光の速さで返信します(●´ω`●)

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

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

About Me

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