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とショートカットを組み合わせると
想像以上に簡単になります。
すべてを自動化する必要はありません。
面倒に感じている一部分だけでも、
自分の仕事に合わせて仕組み化すると、
毎日のメール処理が少し楽になります。











