カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

Outlookを利用してメール送信 [VBA]

この記事は最終更新日から1年以上経過しています。

ACCESSからOutlookを起動し、メールを送信することができます。
メール本文等にデータベースの内容などを引用して作成したい場合などに便利です。

【動作確認環境】
Windows XP & Microsof Office 2000
Windows7 & Microsoft Office 2010, 2013

まずは宣言

Dim oApp    As Object 'Outlookのオブジェクト
Dim objMAIL As Object 'メールのオブジェクト

Dim strMOJI As String '本文
Dim strSign As String '署名

Outlookを起動

オートメーションでOutlookを起動します。

Set oApp = CreateObject("Outlook.Application")

Outlook本体の画面も起動したいときは

Dim myNameSpace As Object
Dim myFolder    As Object

Set myNameSpace = oApp.GetNamespace("MAPI")

'規定のフォルダーを指定
Set myFolder = myNameSpace.GetDefaultFolder(6)
myFolder.Display  '表示

メールの作成

Set objMAIL = oApp.CreateItem(0)

objMAIL.Display '編集画面を表示

宛先を指定します。CC、Bccも可能です。
複数の宛先を;(セミコロン)で区切ることもできます。

objMAIL.To = mailTo
objMAIL.CC = mailcc
objMAIL.Bcc = mailbcc


書式を設定する

objMAIL.BodyFormat = 2 'olFormatHTML
定数名
olFormatPlain 1 テキスト形式
olFormatHTML 2 HTML形式
olFormatRichText 3 リッチテキスト形式

件名を設定する

objMAIL.Subject = "[件名]"

デフォルトの署名を取得(設定はOutlook側で必要)

strSign = objMAIL.Body

本文を設定する

strMOJI = "[本文]" '改行はvbCrLf

objMAIL.Body = strMOJI & vbCrLf & strSign

添付ファイルを送る場合(複数可)

objMAIL.Attachments.Add "[ファイルのフルパス]"

保存/送信

保存や送信などの最終処理をします。

作成画面の状態で表示する

objMAIL.Display

下書きへ保存し、作成画面を閉じる

objMAIL.Save

objMAIL.Close 2

即時送信 ※セキュリティ警告が出る場合があります。

objMAIL.Send

後始末

後始末を忘れないように。オブジェクトを破棄。

Set objMAIL = Nothing
Set myFolder = Nothing
Set oApp = Nothing

【参考URL】
三流君 Outlook Mail メールを操作する
http://www.ken3.org/cgi-bin/group/vba_outlook_Mail.asp
MSDNライブラリ MailItem オブジェクト
http://msdn.microsoft.com/ja-jp/library/cc359390.aspx

この記事がお役に立ちましたらシェアお願いします
84,888 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です