Excel VBA 发送带有多个附件的电子邮件

vbaexcel

1个回答

写回答

18684129409

2025-06-21 07:45

+ 关注

excel
excel

使用excel VBA可以轻松地发送电子邮件,而且还可以附加多个附件。这是非常有用的,特别是当我们需要将多个文件一起发送给收件人时。在本文中,我们将探讨如何使用excel VBA发送带有多个附件的电子邮件,并提供一些实际的案例代码。

1. 准备工作

首先,我们需要在VBA编辑器中添加对Microsoft Outlook库的引用。在VBA编辑器中,选择“工具”>“引用”,然后勾选“Microsoft Outlook xx.x Object Library”选项。

2. 设置邮件内容

在发送电子邮件之前,我们需要设置邮件的内容,包括收件人、主题、正文等。下面是一个简单的例子,展示了如何设置邮件内容:

VBA

Sub SetEmAIlContent()

Dim OutApp As Object

Dim OutMAIl As Object

Set OutApp = CreateObject("Outlook.Application")

Set OutMAIl = OutApp.CreateItem(0)

With OutMAIl

.To = "recipient@example.com"

.Subject = "这是一个测试邮件"

.Body = "这是邮件的正文内容。"

End With

Set OutMAIl = Nothing

Set OutApp = Nothing

End Sub

在这个例子中,我们创建了一个Outlook应用对象(OutApp)和一个邮件对象(OutMAIl)。然后,我们使用.To属性设置了收件人的电子邮件地址,使用.Subject属性设置了邮件的主题,使用.Body属性设置了邮件的正文内容。

3. 添加附件

要添加附件,我们可以使用.Attachments.Add方法。下面是一个例子,展示了如何添加多个附件:

VBA

Sub AddAttachments()

Dim OutApp As Object

Dim OutMAIl As Object

Dim AttachmentsPath As String

Dim FileName As Variant

Set OutApp = CreateObject("Outlook.Application")

Set OutMAIl = OutApp.CreateItem(0)

AttachmentsPath = "C:\Attachments\" ' 附件所在文件夹的路径

' 添加第一个附件

FileName = Dir(AttachmentsPath & "*.*")

Do While FileName <> ""

OutMAIl.Attachments.Add AttachmentsPath & FileName

FileName = Dir

Loop

Set OutMAIl = Nothing

Set OutApp = Nothing

End Sub

在这个例子中,我们首先定义了一个变量AttachmentsPath,用于存储附件所在文件夹的路径。然后,我们使用Dir函数获取附件文件夹中的所有文件名,并使用.Attachments.Add方法将每个文件添加为附件。

4. 发送邮件

最后一步是发送邮件。使用.Send方法可以发送邮件。下面是一个完整的示例代码:

VBA

Sub SendEmAIlWithAttachments()

Dim OutApp As Object

Dim OutMAIl As Object

Dim AttachmentsPath As String

Dim FileName As Variant

Set OutApp = CreateObject("Outlook.Application")

Set OutMAIl = OutApp.CreateItem(0)

' 设置邮件内容

With OutMAIl

.To = "recipient@example.com"

.Subject = "这是一个测试邮件"

.Body = "这是邮件的正文内容。"

End With

' 添加附件

AttachmentsPath = "C:\Attachments\" ' 附件所在文件夹的路径

' 添加第一个附件

FileName = Dir(AttachmentsPath & "*.*")

Do While FileName <> ""

OutMAIl.Attachments.Add AttachmentsPath & FileName

FileName = Dir

Loop

' 发送邮件

OutMAIl.Send

Set OutMAIl = Nothing

Set OutApp = Nothing

End Sub

在这个例子中,我们首先设置了邮件的内容,然后添加了多个附件,最后使用.Send方法发送了邮件。

通过使用excel VBA,我们可以轻松地发送带有多个附件的电子邮件。我们只需要设置邮件的内容,并使用.Attachments.Add方法添加附件,最后使用.Send方法发送邮件。这是一个非常有用的功能,可以帮助我们提高工作效率。

希望这篇文章对你有所帮助,如果你有任何问题或疑问,请随时留言。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号