Outlook VBAで添付ファイルを残して全員返信する方法|ショートカット設定まで5ステップ

Outlookで「全員に返信」をすると、
元のメールに付いていた添付ファイルは
通常、返信メールに引き継がれません。

添付ファイルを保存して付け直す方法もありますが、
何度も繰り返す作業としては少し面倒です。

そこで今回は、Outlook VBAを使って、
添付ファイルを残したまま全員返信する方法と、
ショートカットキーで実行する設定を紹介します。

私は専門商社の海外営業として、
複数の関係者が入ったメールへ
返信する機会が多くあります。

実際の業務で感じた不便をもとに、
送信ミスを防ぎながら
作業を短縮できる形にしています。

Outlook VBAで添付ファイルを残して全員返信する理由

通常の「全員に返信」では、
元のメールに添付されていたファイルが
返信メールから外れます。

一方、「転送」を使えば添付は残りますが、
宛先やCCを入れ直さなければなりません。

特に関係者が多いメールでは、
宛先の入れ忘れや入力間違いが
起こりやすくなります。

VBAを使えば、次の作業を
まとめて自動化できます。

  • 選択したメールから全員返信を作成する
  • 元の添付ファイルを返信メールへ追加する
  • 作成したメールを下書き状態で表示する

自動送信までは行わないため、
宛先、本文、添付ファイルを確認してから
通常どおり送信できます。

この「最後は自分で確認する」形が、
実務では使いやすいと感じています。

Outlook VBAで全員返信する前の確認事項

今回の方法は、Windows版の
クラシックOutlookを対象としています。

新しいOutlookではVBAを使えないため、
画面右上に切り替えボタンがある場合は、
クラシックOutlookを使用してください。

また、会社のパソコンでは
マクロの使用が制限されている場合があります。

設定を変更する前に、必要に応じて
社内のシステム担当者へ確認してください。

Outlook VBAで添付ファイルを残す手順1|VBA画面を開く

Outlookを起動した状態で、
キーボードの「Alt+F11」を押します。

VBAの編集画面が表示されたら、
上部メニューから次の順番で選択します。

「挿入」→「標準モジュール」

白いコード入力画面が表示されたら、
次のVBAコードを貼り付けます。

Outlook VBAで添付ファイルを残す手順2|コードを貼り付ける

Sub ReplyAllWithAttachments()

    Dim originalMail As Outlook.MailItem
    Dim replyMail As Outlook.MailItem
    Dim att As Outlook.Attachment
    Dim tempPath As String
    Dim i As Long

    If Application.ActiveExplorer.Selection.Count = 0 Then
        MsgBox "返信するメールを選択してください。"
        Exit Sub
    End If

    If Not TypeOf Application.ActiveExplorer _
        .Selection.Item(1) Is Outlook.MailItem Then

        MsgBox "メールを選択してください。"
        Exit Sub

    End If

    Set originalMail = Application.ActiveExplorer _
        .Selection.Item(1)

    Set replyMail = originalMail.ReplyAll

    For i = 1 To originalMail.Attachments.Count

        Set att = originalMail.Attachments.Item(i)

        tempPath = Environ$("TEMP") & "\" & _
            Format$(Now, "yyyymmdd_hhnnss_") & _
            CStr(i) & "_" & att.FileName

        att.SaveAsFile tempPath
        replyMail.Attachments.Add tempPath

        On Error Resume Next
        Kill tempPath
        On Error GoTo 0

    Next i

    replyMail.Display

    Set att = Nothing
    Set replyMail = Nothing
    Set originalMail = Nothing

End Sub

このコードでは、添付ファイルを一度
パソコンの一時保存場所へ移し、
全員返信メールへ追加しています。

最後に返信画面を表示するだけなので、
内容を確認せずにメールが
送信されることはありません。

Outlook VBAを保存する手順3|Outlookを再起動する

コードを貼り付けたら、
「Ctrl+S」で保存します。

VBAの編集画面を閉じ、
Outlookも一度終了してください。

再びOutlookを開くと、
作成したマクロを実行できる状態になります。

マクロに関する警告が表示された場合は、
コードの内容と社内ルールを確認したうえで
対応してください。

Outlook VBAにショートカットを設定する手順4|ツールバーへ追加する

Outlookでは、VBAに直接
「Ctrl+特定のキー」のような
ショートカットを設定できません。

そこで、クイックアクセスツールバーへ
マクロを登録します。

Outlookで次の順番に進みます。

「ファイル」
→「オプション」
→「クイックアクセスツールバー」

「コマンドの選択」を
「マクロ」に変更します。

作成した
「ReplyAllWithAttachments」を選択し、
「追加」をクリックしてください。

右側の一覧で一番上に移動させると、
「Alt+1」で実行できるようになります。

登録位置が2番目なら「Alt+2」、
3番目なら「Alt+3」です。

私は使用頻度の高い機能を上に置き、
できるだけ少ないキー操作で
実行できるようにしています。

Outlook VBAをショートカットで使う手順5|実際に全員返信する

使い方はシンプルです。

添付ファイルのあるメールを選択し、
設定した「Alt+数字」を押します。

自動的に全員返信の画面が開き、
元の添付ファイルも追加されます。

実際に使う前に、まずは自分宛ての
テストメールで確認するのがおすすめです。

特に次の点を確認してください。

  • 送信者とCCが引き継がれているか
  • 必要な添付ファイルが付いているか
  • 署名内の画像が添付扱いになっていないか
  • 同じ名前のファイルが重複していないか

メール内にロゴなどの画像がある場合、
それらも添付ファイルとして
追加されることがあります。

最初から本番のメールで使わず、
自分のOutlook環境で動きを
確認してから使用してください。

Outlook VBAで全員返信を効率化して感じたこと

メール業務では、数十秒の作業でも
毎日繰り返すと意外に時間を使います。

私の場合、添付ファイルを保存し直して、
宛先を確認して、再び添付する流れに
小さな面倒を感じていました。

VBAとショートカットを組み合わせると、
メールを選んで「Alt+1」を押すだけで
返信の準備が整います。

単に操作が速くなるだけでなく、
添付忘れや宛先の入れ忘れを
減らせる点も大きなメリットです。

まとめ

Outlookの定型作業は、
VBAとショートカットを組み合わせると
想像以上に簡単になります。

すべてを自動化する必要はありません。

面倒に感じている一部分だけでも、
自分の仕事に合わせて仕組み化すると、
毎日のメール処理が少し楽になります。