【Outlook VBA】返信メールを作成する方法!全員に返信に加え、宛先追加や件名・本文追記も!

Outlook VBAで「返信」メールを作成し、宛先追加や件名、本文修正など一度に行いたいときはないでしょうか。

けど、そんな中で悩むことは、

・「返信」メール作成と宛先追加を一度に行いたいがやり方がわからない。
・「全員に返信」メールの作成と本文への追記を一度に行いたいがやり方がわからない。
・Outlook VBAで「返信」メールを作成したいがやり方がわからない。

ですよね。

今回はそんなお悩みを解決する
Outlook VBAで「返信」と「全員に返信」メールを作成する方法について
まとめます!


Outlook VBAで「返信」「全員へ返信」メールを作成する完成イメージ

Outlook VBAで「返信」メールを作成する完成イメージは以下の通りです。

・「返信」と「全員に返信」を使い分ける
返信メールにはTOへの返信だけの「返信」とTOとCCすべてに返信する「全員に返信」と2パターンあります。
用途に応じてそれぞれのメソッドを使い分け自動返信文を挿入していきます。

・宛先を追加する
これまで手動で入力していた宛先を自動で宛先へ挿入していきます。

TOへの返信のみ

全員へ返信

・件名へ追記する
通常「RE: 」がつくだけですが、さらに文言を追加をしていきます。

・本文へ追記する
返信する時の文言はだいたい決まっていますよね。
そんな定型文を自動で挿入していきます。

・送信する
処理の最後は送信処理を行います。

また、すぐに送信したくない方は表示のみの選択ができます。

では早速VBAを順に組み立て、実装して動かしてみましょう。



Outlook VBAで「返信」メールを作成する

まずは「返信」メールを作成します。
手動で返信ボタンを押したときの処理と同じ内容をVBAで実現していきます。

Sub 選択メールを返信する()
    Dim objReItem As Outlook.MailItem
    
    '現在表示中のメールアイテムを「返信」メールとしてセットします。
    Set objReItem = ActiveInspector.CurrentItem.Reply
    
    objReItem.Recipients.ResolveAll
    
    '表示します。
    objReItem.Display
    
    
    'オブジェクトの開放
    Set objReItem = Nothing

End Sub

返信したいメールを開き、実装したマクロを実行します。

はい、「返信」メールが作成され表示されましたね。

Outlook VBAで全員に返信するメールを作成する

次に全員に返信する「返信」メールを作成します。
冒頭のReplyメソッドからReplyAllメソッドへ変更するだけでOKです。

Sub 選択メールを返信する()
    Dim objReItem As Outlook.MailItem
    
    '現在表示中のメールアイテムを「全員へ返信」メールとしてセットします。
    Set objReItem = ActiveInspector.CurrentItem.ReplyAll
    
    objReItem.Recipients.ResolveAll
    
    '表示します。
    objReItem.Display
    
    
    'オブジェクトの開放
    Set objReItem = Nothing

End Sub

返信したいメールを開き、実装したマクロを実行します。

はい、「全員へ返信」メールが作成され表示されましたね。

 

まずは返信メールをVBAで扱う際の基本形として覚えておきましょう。



Outlook VBAで「返信」メールを作成し、宛先を追加する

続いて返信先の宛先を追加しましょう。
TOの返信先アドレスを指定します。
返信メールはデフォルトでTOを含むため追加という形になります。

objReItem.Recipients(1).Address  & ”;”  & ”test@extan.jp”

CCを指定します。

objReItem.CC = “test1@extan.jp”

タカヒロ
タカヒロ
複数アドレスを指定する場合はセミコロン「;」で区切ってください。

Sub 選択メールを返信する()
    Dim objReItem As Outlook.MailItem
    
    '現在表示中のメールアイテムを「返信」メールとしてセットします。
    Set objReItem = ActiveInspector.CurrentItem.Reply
    
    '返信先を指定します。
    '返信先アドレスを指定してください。
    objReItem.To = objReItem.Recipients(1).Address  & ";"  & "test@extan.jp"
    
    'CCを指定してください。
    objReItem.CC = "test1@extan.jp"
    
    objReItem.Recipients.ResolveAll
    
    '表示します。
    objReItem.Display
    
    
    'オブジェクトの開放
    Set objReItem = Nothing

End Sub

返信したいメールを開き、実装したマクロを実行します。

はい、「返信」メールに追加分のアドレスが挿入されましたね。

タカヒロ
タカヒロ
objReItem.To = objReItem.To  & ”test@extan.jp”
でTOの指定を行うとobjReItem.ToはSMTPアドレスの無い表示名だけになりますので、その際は送信前に名前解決をするようお願いします。



Outlook VBAで「全員へ返信」メールを作成し、宛先を追加する

「全員へ返信」メールにも宛先を追加しましょう。

「全員へ返信」メールはデフォルトでCCを含むため、追加という形になります。
CCを指定します。

objReItem.CC = objReItem.CC  & ”test1@extan.jp”

タカヒロ
タカヒロ
複数アドレスを指定する場合はセミコロン「;」で区切ってください。

Sub 選択メールを返信する()
    Dim objReItem As Outlook.MailItem
    
    '現在表示中のメールアイテムを「全員へ返信」メールとしてセットします。
    Set objReItem = ActiveInspector.CurrentItem.ReplyAll
    
    '返信先を指定します。
    '返信先アドレスを指定してください。
    objReItem.To = objReItem.Recipients(1).Address & ";" & "test@extan.jp"
    
    'CCを指定してください。
    objReItem.CC = objReItem.CC & ";" & "test1@extan.jp"
    
    objReItem.Recipients.ResolveAll
    
    '表示します。
    objReItem.Display
    
    'オブジェクトの開放
    Set objReItem = Nothing

End Sub

全員へ返信したいメールを開き、実装したマクロを実行します。

はい、「全員へ返信」メールに追加分のアドレスが挿入されましたね。



Outlook VBAで「返信」メールを作成し、件名へ追記する

次は件名の内容を追加します。

<メール返信します>のところを適当な内容に変えてください。

objReItem.Subject = objReItem.Subject & “<メール返信します>”

タカヒロ
タカヒロ
件名の文頭に追加する場合は「”<メール返信します>” & objReItem.Subject」としてください。

Sub 選択メールを返信する()
    Dim objReItem As Outlook.MailItem
    
    '現在表示中のメールアイテムを「返信」メールとしてセットします。
    Set objReItem = ActiveInspector.CurrentItem.Reply
    
    '返信先を指定します。
    '返信先アドレスを指定してください。
    objReItem.To = objReItem.Recipients(1).Address & ";" & "test@extan.jp"
    
    'CCを指定してください。
    objReItem.CC = "test1@extan.jp"
    
    '件名を指定します。
    objReItem.Subject = objReItem.Subject & "<メール返信します>"

    objReItem.Recipients.ResolveAll
    
    '表示します。
    objReItem.Display
    
    'オブジェクトの開放
    Set objReItem = Nothing

End Sub

返信したいメールを開き、実装したマクロを実行します。

はい、件名に追記した内容が反映されましたね。



Outlook VBAで「全員へ返信」メールを作成し、件名へ追記する

「返信」メールのReplyメソッドをReplyAllメソッドへ変更します。

Sub 選択メールを返信する()
    Dim objReItem As Outlook.MailItem
    
    '現在表示中のメールアイテムを「全員へ返信」メールとしてセットします。
    Set objReItem = ActiveInspector.CurrentItem.ReplyAll
    
    '返信先を指定します。
    '返信先アドレスを指定してください。
    objReItem.To = objReItem.Recipients(1).Address & ";" & "test@extan.jp"
    
    'CCを指定してください。
    'objReItem.CC = objReItem.CC & ";" & "test1@extan.jp"
    
    '件名を指定します。
    objReItem.Subject = objReItem.Subject & "<メール返信します>"

    objReItem.Recipients.ResolveAll
    
    '表示します。
    objReItem.Display
    
    'オブジェクトの開放
    Set objReItem = Nothing

End Sub

返信したいメールを開き、実装したマクロを実行します。

はい、件名に追記した内容が反映されましたね。



Outlook VBAで「返信」メールを作成し、本文へ追記する

メール本文に返信文を追記します。

追記内容は以下の通りです。適宜変更してください。

objReItem.Body = “お世話になっております。” & vbCrLf _
& “確かに受領いたしましたことご連絡致します。” & vbCrLf _
& “よろしくお願いいたします。” & vbCrLf _
& “*****************************” & vbCrLf _
& “エク短商事株式会社” & vbCrLf _
& “◇◇部◇◇課タカヒロ” & vbCrLf _
& “*****************************” & vbCrLf _
& objReItem.Body

VBAとなります。

Sub 選択メールを返信する()
    Dim objReItem As Outlook.MailItem
    
    '現在表示中のメールアイテムを「返信」メールとしてセットします。
    Set objReItem = ActiveInspector.CurrentItem.Reply
    
    '返信先を指定します。
    '返信先アドレスを指定してください。
    objReItem.To = objReItem.Recipients(1).Address & ";" & "test@extan.jp"
    
    'CCを指定してください。
    objReItem.CC = "test1@extan.jp"
    
    '件名を指定します。
    objReItem.Subject = objReItem.Subject & "<メール返信します>"
    
    'メール本文を指定します。
    objReItem.Body = "お世話になっております。" & vbCrLf _
    & "確かに受領いたしましたことご連絡致します。" & vbCrLf _
    & "よろしくお願いいたします。" & vbCrLf _
    & "*****************************" & vbCrLf _
    & "エク短商事株式会社" & vbCrLf _
    & "◇◇部◇◇課タカヒロ" & vbCrLf _
    & "*****************************" & vbCrLf _
    & objReItem.Body
    
    objReItem.Recipients.ResolveAll
    
    '表示します。
    objReItem.Display
    
    
    'オブジェクトの開放
    Set objReItem = Nothing

End Sub

メールを選択した上、マクロを実行します。

はい、本文に追記されていますね。



Outlook VBAで「全員に返信」メールを作成し、本文へ追記する

「返信」メールのReplyメソッドをReplyAllメソッドへ変更します。

Sub 選択メールを返信する()
    Dim objReItem As Outlook.MailItem
    
    '現在表示中のメールアイテムを「返信」メールとしてセットします。
    Set objReItem = ActiveInspector.CurrentItem.ReplyAll
    
    '返信先を指定します。
    '返信先アドレスを指定してください。
    objReItem.To = objReItem.Recipients(1).Address & ";" & "test@extan.jp"
    
    'CCを指定してください。
    objReItem.CC = objReItem.CC & ";" & "test1@extan.jp"
    
    '件名を指定します。
    objReItem.Subject = objReItem.Subject & "<メール返信します>"
    
    'メール本文を指定します。
    objReItem.Body = "お世話になっております。" & vbCrLf _
    & "確かに受領いたしましたことご連絡致します。" & vbCrLf _
    & "よろしくお願いいたします。" & vbCrLf _
    & "*****************************" & vbCrLf _
    & "エク短商事株式会社" & vbCrLf _
    & "◇◇部◇◇課タカヒロ" & vbCrLf _
    & "*****************************" & vbCrLf _
    & objReItem.Body
    
    objReItem.Recipients.ResolveAll
    
    '表示します。
    objReItem.Display
    
    'オブジェクトの開放
    Set objReItem = Nothing

End Sub

メールを選択した上、マクロを実行します。

はい、「全員へ返信」の本文に追記されていますね。



Outlook VBAで「返信」メールを作成し、送信する

最後の処理である送信をおこないます。

Sendメソッドで実行します。

objReItem.Send

表示だけにしたい方は、Sendメソッドをコメントアウトし、displayメソッドを有効化してください。

‘表示します。
objReItem.Display’送信します。
‘objReItem.Send
Sub 選択メールを返信する()
    Dim objReItem As Outlook.MailItem
    
    '現在表示中のメールアイテムを「返信」メールとしてセットします。
    Set objReItem = ActiveInspector.CurrentItem.ReplyAll
    
    '返信先を指定します。
    '返信先アドレスを指定してください。
    objReItem.To = objReItem.Recipients(1).Address & ";" & "test@extan.jp"
    
    'CCを指定してください。
    objReItem.CC = "test1@extan.jp"
    
    '件名を指定します。
    objReItem.Subject = objReItem.Subject & "<メール返信します>"
    
    'メール本文を指定します。
    objReItem.Body = "お世話になっております。" & vbCrLf _
    & "確かに受領いたしましたことご連絡致します。" & vbCrLf _
    & "よろしくお願いいたします。" & vbCrLf _
    & "エク短商事株式会社 ◇◇部◇◇課タカヒロ。" & vbCrLf _
    & objReItem.Body
    
    objReItem.Recipients.ResolveAll
    
    '表示します。
    'objReItem.Display
    
    '送信します。
    objReItem.Send
    
    'オブジェクトの開放
    Set objReItem = Nothing

End Sub

メールを選択した上、マクロを実行します。

はい、送信されていることが確認できましたね。

タカヒロ
タカヒロ
メール誤送信防止のため、テストアドレスで送信を行うことを推奨します。



Outlook VBAで「全員へ返信」メールを作成し、送信する

「全員へ返信」メールも同じく送信をおこないましょう。

Sendメソッドで実行します。

Sub 選択メールを返信する()
    Dim objReItem As Outlook.MailItem
    
    '現在表示中のメールアイテムを「全員へ返信」メールとしてセットします。
    Set objReItem = ActiveInspector.CurrentItem.ReplyAll
    
    '返信先を指定します。
    '返信先アドレスを指定してください。
    objReItem.To = objReItem.Recipients(1).Address & ";" & "test@extan.jp"
    
    'CCを指定してください。
    'objReItem.CC = objReItem.CC & ";" & "test1@extan.jp"
    
    '件名を指定します。
    objReItem.Subject = objReItem.Subject & "<メール返信します>"
    
    'メール本文を指定します。
    objReItem.Body = "お世話になっております。" & vbCrLf _
    & "確かに受領いたしましたことご連絡致します。" & vbCrLf _
    & "よろしくお願いいたします。" & vbCrLf _
    & "エク短商事株式会社 ◇◇部◇◇課タカヒロ。" & vbCrLf _
    & objReItem.Body
    
    objReItem.Recipients.ResolveAll
    
    '表示します。
    'objReItem.Display
    
    '送信します。
    objReItem.Send
    
    'オブジェクトの開放
    Set objReItem = Nothing

End Sub

メールを選択した上、マクロを実行します。

はい、「全員へ返信」メールも送信されていることが確認できましたね。



VBAの実装手順

実装手順は以下の通りです。

「開発」タブ>「Visual Basic」を押します。

「Visual Basic Editor」にて、[Project1] > [Microsoft Outlook Objects] の ThisOutlookSessionをダブルクリックします。

右ペインのコードエリアへ、VBAコードを貼り付けて保存します。

こちらで完了です。

VBAを実行する

では早速VBAの実行をしてみましょう。

①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。

②処理がされたことが確認できれば完了です。



さいごに

いかがでしょうか。

今回は、
Outlook VBAで「返信」と「全員に返信」メールを作成する方法について
まとめました。

また、さらに便利な仕訳ルールと組み合わせてVBAを実行し、カスタム「返信」メールを返信する方法も追記しました。

Outlookの仕分けルールからスクリプトを実行しメール転送する方法

よろしければご参照ください。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です