- VB,VBA
- 2014-05-23 - 更新:2022-09-24
この記事は最終更新日から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,918 views