【マクロ・VBA】Outlookでメールを送る方法 ~送信元アドレスを変更編~

マクロ・VBA

こんにちは。キラです。

以前に投稿した記事で、
Excelで作成した連絡帳を使ってOutlookからメールを送る方法
を紹介しました。
今回の記事では、このVBAコードの改良版を公開します。

マクロ・VBAでOutlookからメールを送るためのコードを書いた場合、
送信元のアドレスを選択できないというデメリットがあります。

Outlookユーザの大半は、複数のアドレスをOutlookに登録していると思います。
ですから、メール送信する際は、その都度送信元アドレスを選択する必要があります。

今回は、
【マクロ・VBA】Outlookでメールを送る方法 ~送信元アドレスを変更編~
と題して、送信元のアドレスを選択してメールを送信する方法を紹介します。

実際にオレが書いたコードも紹介しています。
コードをそのまま使うも良し!アレンジして使うも良し!
いずれにしても、あなたの作業効率がアップするのなら、本望です。

Outlookで送信元アドレスを選択してメールを送る方法

Outlookで送信元アドレスを選択してメールを送るには、以下のコードを書きます。

mailitemObj.SendUsingAccount = Session.Accounts(xxxxxx@mail.com)

具体的な挿入個所を紹介します。

エクセルのシート構成

まずは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に記載しているマクロはこんな感じです。

赤文字の部分が、Outlookで送信元アドレスを選択してメールを送るためのコードです。

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で送信元アドレスを選択してメールを送ることができます。

まとめ

今回の記事は、
【マクロ・VBA】Outlookでメールを送る方法 ~送信元アドレスを変更編~
と題して書いてきました。

送信先を自由に選択しながら自動的にメールを送ることができれば、非常に便利です。
ぜひ活用ください。

あなたの作業効率がアップすることを願っています。
空いた時間は勉強にあてて、さらなるステップアップをしていきましょう。

コメント

タイトルとURLをコピーしました