PCメモ

Excelを中心とした業務改善の記録

VBAでOutlookメールを送付

ExcelVBAを使用してOutlookメールを作成し送付する。

準備

Outlookを操作する為の参照設定。

VBE→ツール→参照設定→Microsoft Outlook 16.0 Object Libraryにチェック。
16.0はバージョンによって変わる。

f:id:abv72:20210321124436p:plain

コード

 Sub SendMail1()

'--- Outlook操作のオブジェクト ---'
Dim objOutlook As Object
Set objOutlook = New Outlook.Application

'--- メールオブジェクト ---'
Dim objMail As Object
Set objMail = objOutlook.CreateItem(olMailItem)

'--- メールの内容を格納する変数 ---'
Dim toStr As String
Dim ccStr As String
Dim bccStr As String
Dim subjectStr As String
Dim bodyStr As String

'--- 宛先の内容 ---'
toStr = "[宛先のメールアドレス]"
ccStr = "[CCのメールアドレス]"
bccStr = "[BCCのメールアドレス]"

'--- 件名の内容 ---'
subjectStr = "[件名]"

'--- 本文の内容 ---'
bodyStr = "[本文]"

'--- 条件を設定 ---'
objMail.To = toStr
objMail.CC = ccStr
objMail.BCC = bccStr
objMail.Subject = subjectStr
objMail.BodyFormat = olFormatPlain 'テキスト形式
objMail.Body = bodyStr

 

'(添付ファイル)

'--- メールを表示 ---'
objMail.Display

'--- メールを送付 ---'
objMail.Send

End Sub

 

【VBA】Outlookから添付ファイルを付けてメールを送付する | あじゅWeb

 

解説

'--- メールオブジェクト ---'
Dim objMail As Object
Set objMail = objOutlook.CreateItem(olMailItem)

objMailというメール作成用変数ににOutlookメールオブジェクトがSetされる。
宛先や本文などを格納する為のデータがオブジェクト内に設定されている。

f:id:abv72:20210321130858p:plain


'--- メールの内容を格納する変数 ---'
Dim toStr As String
Dim ccStr As String
Dim bccStr As String
Dim subjectStr As String
Dim bodyStr As String

 

必要な情報を変数に格納し、objMailの各要素へ入れていく。

 

f:id:abv72:20210321131053p:plain

 

'--- メールを表示 ---'
objMail.Display
'--- メールを送付 ---'
objMail.Send

 

必要な情報が格納されたobjMailを表示させた後送付する。

添付ファイル設定

ファイルを添付することもできる。


'--- 添付ファイルのパス ---'
Dim attachmentPath As String
 attachmentPath = "[添付ファイルのパス]"

'--- 添付ファイルを設定 ---'
 Call objMail.Attachments.Add(attachmentPath)

 

 ダイアログボックスでファイルを編集し、パスを取得→添付。

abv72.hatenablog.com

 

 

【参考記事】