跳至主要内容

如何在Outlook中回复邮件时复制所有附件的名称?

Author: Kelly Last Modified: 2025-05-07

在Outlook中回复RTF格式(富文本格式)的邮件时,它会自动将所有附件的名称复制并粘贴到邮件正文中(见下图)。然而,在Outlook中回复HTML格式的邮件时,回复邮件中的附件却不见了。本文将介绍一些方法,帮助您在回复邮件或直接在收到的邮件中复制所有附件的名称。


通过将HTML转换为RTF格式回复时复制所有附件的名称

如果我们在回复之前已将HTML邮件转换为RTF格式,那么点击“开始”>“答复”后,所有附件的名称都会被复制到回复邮件中。

1双击打开需要复制附件名称的邮件,然后点击 邮件 > 操作 > 编辑邮件 在邮件窗口中。见截图:
doc-copy-attachment-names-01

2继续点击 格式文本 > 富文本,然后保存并关闭邮件。
doc-copy-attachment-names-02

现在您返回到主视图。保持选中该邮件,并点击 开始 > 答复。

4现在,所有附件的名称都从原始邮件中复制并粘贴到回复邮件中,如下图所示。请撰写回复内容并发送。
doc-copy-attachment-names-03

轻松回复选定的邮件并保留所有原始附件在Outlook中

通常情况下,在Outlook中回复邮件时,原始附件会被移除。但是,借助Kutools for Outlook出色的 带附件回复 功能,您可以在Outlook中回复邮件时轻松保留所有附件。


reply with attachments


使用强大工具回复时复制所有附件名称

如果您安装了 Kutools for Outlook,您可以使用其 复制名称 功能快速从收到的邮件中复制所有附件名称,然后轻松粘贴到Outlook的回复邮件中。

使用Kutools for Outlook解锁无与伦比的邮件处理效率!永久免费获取 70 项强大功能。立即下载免费版本

1选择要回复的邮件,并点击 Kutools Plus > 附件工具 > 复制名称.
doc-click-copy-names

随后会弹出一个对话框,告诉您附件名称已复制到剪贴板。点击 确定 关闭它。

继续点击 开始 > 答复 来回复选定的邮件。

3在回复邮件窗口中,将光标放在邮件正文中,然后按 Ctrl + V 键即可轻松粘贴附件名称。
doc-paste-names


通过VBA回复时复制所有附件的名称

此方法将介绍一个VBA宏,用于在回复邮件时复制所有附件的名称,并将这些名称粘贴到Outlook回复邮件的正文中。

同时按下 Alt + F11 键打开Microsoft Visual Basic for Applications窗口。

2在左侧的项目资源管理器中,展开Project 1,双击打开 ThisOutlookSession 窗口(见下图),然后将以下代码粘贴到窗口中。
doc-copy-attachment-names-2

VBA:在Outlook中回复邮件时复制所有附件的名称

Option Explicit
Private WithEvents oExpl As Explorer
Private WithEvents oItem As MailItem
Private bAttachEvent As Boolean


Private Sub Application_Startup()
Set oExpl = Application.ActiveExplorer
bAttachEvent = False   
End Sub

Private Sub oExpl_SelectionChange()
On Error Resume Next
Set oItem = oExpl.Selection.Item(1)
End Sub

' Reply
Private Sub oItem_Reply(ByVal Response As Object, Cancel As Boolean)

Dim oAtt As Attachment
Dim sAtts As String
Dim olInspector As Outlook.Inspector
Dim olDocument As Word.Document
Dim olSelection As Word.Selection

If bAttachEvent Or oItem.Attachments.Count = 0 Then
Exit Sub
End If

Cancel = True
bAttachEvent = True
sAtts = ""

For Each oAtt In oItem.Attachments
sAtts = sAtts & "<<" & oAtt.FileName & ">> "
Next oAtt

Dim oResponse As MailItem
Set oResponse = oItem.Reply
oResponse.Display

Set olInspector = Application.ActiveInspector()
Set olDocument = olInspector.WordEditor
Set olSelection = olDocument.Application.Selection

olSelection.InsertBefore sAtts

bAttachEvent = False
Set oItem = Nothing
End Sub

' Reply All
Private Sub oItem_ReplyAll(ByVal Response As Object, Cancel As Boolean)

Dim oAtt As Attachment
Dim sAtts As String
Dim olInspector As Outlook.Inspector
Dim olDocument As Word.Document
Dim olSelection As Word.Selection

If bAttachEvent Or oItem.Attachments.Count = 0 Then
Exit Sub
End If

Cancel = True
bAttachEvent = True

sAtts = ""

For Each oAtt In oItem.Attachments
sAtts = sAtts & "<<" & oAtt.FileName & ">> "
Next oAtt

Dim oResponse As MailItem
Set oResponse = oItem.ReplyAll
oResponse.Display

Set olInspector = Application.ActiveInspector()
Set olDocument = olInspector.WordEditor
Set olSelection = olDocument.Application.Selection

olSelection.InsertBefore sAtts  
bAttachEvent = False
Set oItem = Nothing

End Sub

点击 工具 > 引用。

4在打开的Outlook 2016的引用 - Project 1窗口中,请勾选 Microsoft Word 16.0 Object Library 在可用引用框中的引用,然后点击 确定 按钮。见截图:
doc-copy-attachment-names-4
注意:请选择 Microsoft Word 15.0 Object Library 引用,如果您使用的是Outlook 2013,或者 Microsoft Word 14.0 Object Library 引用与Outlook 2010一起使用。

保存VBA并关闭Microsoft Visual Basic for Applications窗口。

现在您返回到Outlook的主界面。选择要回复的邮件,并点击 开始 > 答复 或 全部答复。注意:如果附件名称未复制并粘贴到回复邮件中,请重新启动Outlook并再次回复。

现在,所有附件的名称都从选定的邮件中复制并粘贴到回复邮件中。见截图:
doc-copy-attachment-names-5


相关文章: