Excel VBAでOutlookのメールを添付ファイル付きで自動作成する方法を解説します。
実際のコード
早速ですが実際のコードはこちら。
Sub mail_create()
'--- Outlook操作のオブジェクト ---
Dim objOutlook As Object
Set objOutlook = New Outlook.Application
'--- メールオブジェクト ---
Dim objMail As Object
Set objMail = objOutlook.CreateItem(olMailItem)
'--- メールの内容を格納する変数 ---
Dim toStr As String 'to(宛先)
Dim ccStr As String 'cc(ccの宛先)
Dim bccStr As String 'bcc(bccの宛先)
Dim subjectStr As String 'メールの件名
Dim bodyStr As String 'メールの本文
Dim attachmentPath As String '添付ファイルのパス
'---Excelから情報取得---
'セルは適当に入れています。Excel内にある場合は実際のセルに設定してください。
toStr = Range("A1").Value
ccStr = Range("A2").Value
bccStr = Range("A3").Value
subjectStr = Range("A4").Value
attachmentPath = Range("A5").Value
'--- メールの内容をセット ---
'上のセルから取得もできますが、コードに書き込んでも可能です。
'どちらか一方を使ってください。
'to宛先をセット
toStr = "abc@gmail.com"
'ccをセット
ccStr = "abc@gmail.com"
'Bccをセット
'bccStr = "abc@gmail.com"
'--- 件名の内容 ---
subjectStr = "メールの件名を入力します。"
'--- 本文の内容 ---
bodyStr = "本文を入力します。"
'--- メールを作成 ---
objMail.To = toStr
objMail.CC = ccStr
objMail.BCC = bccStr
objMail.Subject = subjectStr
objMail.BodyFormat = olFormatPlain 'メールをテキスト形式に設定
objMail.Body = bodyStr
'添付ファイルパスが空白の場合にスルーする
If attachmentPath = "" Then
Else
objMail.Attachments.Add (attachmentPath)
End If
'--- メールを表示 ---
objMail.Display
'--- メールを送付 ---
'objMail.Send
End Sub
解説
参照設定
参照設定にはこちらを必ず入れてください。
- ”Microsoft Outlook 16.0 Object Library”
添付ファイルのパス
添付ファイルのパスはフルパスで指定してください。
メールの形式
メールをテキスト形式やHTML形式などが設定できます。本文をHTMLで作成する場合などはHTMLにしておきましょう。
また、企業のセキュリティポリシーなどで、HTMLメールでの送信が禁止されている場合もあります。そうした場合には、テキスト形式などへ設定しておきましょう。
内容 | コード |
---|---|
HTML形式 | objMail.BodyFormat = olFormatHTML |
テキスト形式 | objMail.BodyFormat = olFormatPlain |
リッチテキスト形式 | objMail.BodyFormat = olFormatRichText |
形式の指定なし | objMail.BodyFormat = olFormatUnspecified |
メールの表示と送信
メールを作成した後に、送信をさせるかどうかを設定できます。
内容 | コード |
---|---|
メールを送信せず表示させる | objMail.Display |
メールを表示させず送信する | objMail.Send |
サンプルファイル
下のダウンロードボタンからサンプルファイルがダウンロードできます。
コメント