【Outlook VBA】転送メールを作成する方法!宛先追加や件名・本文追記も!

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

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

・転送メール作成と宛先追加を一度に行いたいがやり方がわからない。
・Outlook VBAで転送メールを作成したいがやり方がわからない。

ですよね。

今回はそんなお悩みを解決する
転送メールを作成する方法について
まとめます!

Outlook VBAで転送メールを作成する完成イメージ

Outlook VBAで転送メールを作成する完成イメージは以下の通りです。

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

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

・本文へ追記する
転送する時に一言添えたいところですよね。そんな一文を自動で挿入していきます。

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

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

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

Outlook VBAで転送メールを作成する

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

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

End Sub

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

はい、転送メールが作成され表示されましたね。

Outlook VBAで転送メールを作成し、宛先を追加する

続いて転送先の宛先を追加しましょう。
Toの転送先アドレスを指定します。

objFwItem.To = “test@extan.jp; test@extan.jp”

CCを指定します。

objFwItem.CC = “test1@extan.jp; test2@extan.jp”

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

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

End Sub

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

はい、転送先アドレスが挿入されましたね。

Outlook VBAで転送メールを作成し、件名へ追記する

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

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

objFwItem.Subject = objFwItem.Subject & “<メール転送します>”

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

Sub 選択メールを転送する()
    Dim objFwItem As Outlook.MailItem
    
    '現在表示中のメールアイテムを転送メールとしてセットします。
    Set objFwItem = ActiveInspector.CurrentItem.Forward
    
    '転送先を指定します。
    '転送先アドレスを指定してください。
    objFwItem.To = "test@extan.jp; test@extan.jp"
    
    'CCを指定してください。
    objFwItem.CC = "test1@extan.jp; test2@extan.jp"
    
    '件名を指定します。
    objFwItem.Subject = objFwItem.Subject & "<メール転送します>"
    
    
    objFwItem.Recipients.ResolveAll
    
    '表示します。
    objFwItem.Display
    
    
    'オブジェクトの開放
    Set objFwItem = Nothing

End Sub

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

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

Outlook VBAで転送メールを作成し、本文へ追記する

メール本文に追記します。
“メールを転送させて頂きます。”
“以下転送元の内容となります。”

の部分を適当な内容に変更してください。

objFwItem.Body = “メールを転送させて頂きます。” & vbCrLf _
& “以下転送元の内容となります。” & vbCrLf _
& “——” & vbCrLf _
& objFwItem.Body
Sub 選択メールを転送する()
    Dim objFwItem As Outlook.MailItem
    
    '現在表示中のメールアイテムを転送メールとしてセットします。
    Set objFwItem = ActiveInspector.CurrentItem.Forward
    
    '転送先を指定します。
    '転送先アドレスを指定してください。
    objFwItem.To = "test@extan.jp; test@extan.jp"
    
    'CCを指定してください。
    objFwItem.CC = "test1@extan.jp; test2@extan.jp"
    
    '件名を指定します。
    objFwItem.Subject = objFwItem.Subject & "<メール転送します>"
    
    'メール本文を指定します。
    objFwItem.Body = "メールを転送させて頂きます。" & vbCrLf _
    & "以下転送元の内容となります。" & vbCrLf _
    & "------" & vbCrLf _
    & objFwItem.Body
    
    objFwItem.Recipients.ResolveAll
    
    '表示します。
    objFwItem.Display
    
    
    'オブジェクトの開放
    Set objFwItem = Nothing

End Sub

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

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

Outlook VBAで転送メールを作成し、送信する

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

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

objFwItem.Send

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

‘表示します。
objFwItem.Display

‘送信します。
‘objFwItem.Send

Sub 選択メールを転送する()
    Dim objFwItem As Outlook.MailItem
    
    '現在表示中のメールアイテムを転送メールとしてセットします。
    Set objFwItem = ActiveInspector.CurrentItem.Forward
    
    '転送先を指定します。
    '転送先アドレスを指定してください。
    objFwItem.To = "test@extan.jp; test@extan.jp"
    
    'CCを指定してください。
    objFwItem.CC = "test1@extan.jp; test2@extan.jp"
    
    '件名を指定します。
    objFwItem.Subject = objFwItem.Subject & "<メール転送します>"
    
    'メール本文を指定します。
    objFwItem.Body = "メールを転送させて頂きます。" & vbCrLf _
    & "以下転送元の内容となります。" & vbCrLf _
    & "------" & vbCrLf _
    & objFwItem.Body
    
    objFwItem.Recipients.ResolveAll
    
    '表示します。
    'objFwItem.Display
    
    '送信します。
    objFwItem.Send
    
    'オブジェクトの開放
    Set objFwItem = Nothing

End Sub

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

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

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

VBAの実装手順

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

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

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

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

こちらで完了です。

VBAを実行する

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

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

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

さいごに

いかがでしょうか。

今回は、
転送メールを作成する方法について
まとめました。

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

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

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



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。



タカヒロ

 
タカヒロ  
Excelの基礎がスルスル入ってくるAmazonランク1位の優良Excel本です。
 
この基礎本と応用技が多いエク短と組み合わせれば、短時間で誰よりもExcelが使いこなせるかと思います。
 
2022/1/21(金)23: 59までAmazon限定の「厳選ショートカットキー」DL特典アリです。 >詳細を見てみる 

2 件のコメント

  • 大変有益な情報ありがとうございます。一点お知恵をお借りしたいのですが、転送の際に、転送先=もとのメール送信者、転送する際のcc=もとのメールのcc というように指定したい場合はどのように上のマクロを変更すればよいでしょうか。今使っているアウトルックの返信機能がフリーズすることが多く非常に困っています。そのため、いつも、転送ボタンを押して、宛先を転送元のアドレスから手打ちすることで実質的に返信していまして、お聞きする次第です。

    • いつもご利用ありがとうございます。

      ご質問の、
      転送の際に、転送先=もとのメール送信者、転送する際のcc=もとのメールのcc
      とする件でございますが、以下の対応で可能となります。

      メールオブジェクトを転送のForwardメソッドからすべての受信者に対する返信のReplyAllメソッドへ変更します。

      Set objFwItem = ActiveInspector.CurrentItem.ReplyAll

      以下をコメントアウトするか削除します。
      ‘objFwItem.To = “****@extan.jp”
      ‘objFwItem.CC = “****@extan.jp”

      この方法の場合、件名はFW:ではなくRE:となりますことご了承ください。

      また、Outlookの返信機能がフリーズする事象につきましては、原因特定の調査が必要かと思われます。
      Outlookのバージョン、拡張機能、サードパーティ製ツール、利用端末のスペック、他利用者における同事象発生有無などの点で切り分け、
      確認をすることをご検討いただければと存じます。

  • コメントを残す

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