Excelで作成した連絡帳を使ってメールを送信したいと思うことありませんか?
単に同じ内容のメールを送るのなら一斉送信をすれば事足りるのですが、
宛先ごとに添付ファイルが異なる場合、一斉送信を使うことができません。
この記事では、オレが実際に仕事で使っているマクロ・VBAを公開しています。
添付ファイルが異なる複数の宛先に一斉送信できるマクロです。
このコードをそのまま使うも良し!アレンジして使うも良し!
いずれにしても、あなたの作業効率がアップするのなら、本望です。
Outlookでファイルを添付してメールを送る方法
ではさっそく、オレが実際に使っているコードを記載します。
エクセルのシート構成
まずはExcelのシート構成です。こんな感じです。
B列5 | 件名 |
B列6 | 本文 |
H列9~11 | 送信先アドレス |
I列9~11 | 添付ファイル1個目 |
J列9~11 | 添付ファイル2個目 |
K列9~11 | 添付ファイル3個目 |
L列9~11 | 添付ファイル4個目 |
マクロ・VBAのコード
VBEditorに記載しているマクロはこんな感じです。
H列に記載の送信先(3件)に、それぞれ異なるファイルを添付して送信するマクロです。
添付ファイルの箱は4つ用意しています。空白だったら無視して次に進みます。
なお、添付ファイルはマクロのファイルと同じフォルダに入れておく必要があります。
Sub sendmail()
'変数を定義します
Dim Toaddress As String
Dim Subject As String
Dim Mailbody As String
Dim outlookObj As Outlook.Application
Dim mailitemObj As Outlook.MailItem
Dim i As Integer
Dim AttachedFile As String
Dim AttachedFile2 As String
Dim AttachedFile3 As String
Dim AttachedFile4 As String
For i = 9 To 11 '今回は3人分送ります
AttachedFile = Range("I" & i).Value
AttachedFile2 = Range("J" & i).Value
AttachedFile3 = Range("K" & i).Value
AttachedFile4 = Range("L" & i).Value
'Outlookを起動
Set outlookObj = CreateObject("Outlook.Application")
Set mailitemObj = outlookObj.createItem(olMailItem)
'送信元アドレスを設定(Outlookのアカウントが2つ以上の時は設定推奨)
mailitemObj.SendUsingAccount = Session.Accounts(xxxxxx@mail.com)
'変数代入
Toaddress = Range("E" & i).Value
Subject = Range("B5").Value
Mailbody = Range("B6").Value
'メール作成
mailitemObj.bodyformat = 2 'HTMLメールにするための宣言
mailitemObj.To = Toaddress
mailitemObj.Subject = Subject
mailitemObj.Body = Mailbody
'メール作成 添付ファイルの有無を確認し添付
If AttachedFile <> "" Then
mailitemObj.Attachments.Add ThisWorkbook.Path & "\" & AttachedFile
End If
If AttachedFile2 <> "" Then
mailitemObj.Attachments.Add ThisWorkbook.Path & "\" & AttachedFile2
End If
If AttachedFile3 <> "" Then
mailitemObj.Attachments.Add ThisWorkbook.Path & "\" & AttachedFile3
End If
If AttachedFile4 <> "" Then
mailitemObj.Attachments.Add ThisWorkbook.Path & "\" & AttachedFile4
End If
'メール送信
mailitemObj.Send
Next i
MsgBox "END"
End Sub
上記のマクロを始動すれば、Outlookが起動して自動でメールを送信できます。
まとめ
上記のコードは、諸先輩方のコードをつぎはぎして作り上げたものです。
もっと効率の良いコードがあると思います。
いずれにしても、あなたの作業効率がアップすることを願っています。
空いた時間は勉強にあてて、さらなるステップアップをしていきましょう。
コメント