VBA 使用 OFT 模板从 Excel 发送电子邮件 - 禁止自动签名

作者:编程家 分类: vba 时间:2025-11-16

在VBA中使用OFT模板从Excel发送电子邮件是一种非常常见的需求。OFT模板是一种Outlook模板文件,用于创建和发送电子邮件。在Excel中,我们可以使用VBA编程语言来自动化此过程,并将数据从Excel工作表中导入到电子邮件中。然而,有时我们可能希望在发送邮件时禁止Outlook自动添加电子邮件签名。本文将介绍如何使用VBA编写代码来实现这一功能,并提供一个案例代码来演示该过程。

首先,我们需要确保已经在Excel中启用了Microsoft Outlook库。在VBA编辑器中,选择“工具”菜单下的“引用”选项,并勾选“Microsoft Outlook xx.x Object Library”。

然后,我们可以使用以下代码来发送电子邮件,并禁止自动添加签名:

vba

Sub SendEmailWithoutSignature()

Dim OutApp As Object

Dim OutMail As Object

' 创建Outlook应用程序对象

Set OutApp = CreateObject("Outlook.Application")

' 创建新的邮件对象

Set OutMail = OutApp.CreateItemFromTemplate("C:\Path\to\your\template.oft")

' 禁用自动添加签名

OutMail.BodyFormat = 2 ' olFormatHTML

OutMail.HTMLBody = Replace(OutMail.HTMLBody, "", "")

' 设置收件人、主题等信息

With OutMail

.To = "recipient@example.com"

.Subject = "Test Email"

' 添加其他内容

.HTMLBody = .HTMLBody & "

This is the body of the email.

"

.Send

End With

' 释放对象

Set OutMail = Nothing

Set OutApp = Nothing

End Sub

在上述代码中,我们首先创建了一个Outlook应用程序对象和一个新的邮件对象。然后,我们将从OFT模板文件中创建邮件对象,并将其分配给OutMail变量。接下来,我们禁用自动添加签名的功能,这是通过将OutMail.BodyFormat设置为2(olFormatHTML)来实现的,并使用Replace函数将签名部分的HTML注释标记替换为空字符串。最后,我们设置收件人、主题和正文等信息,并发送邮件。

值得注意的是,上述代码中的“C:\Path\to\your\template.oft”应替换为您实际的OFT模板文件路径。此外,还可以根据需要添加其他的HTML内容到邮件正文中。

案例代码:

vba

Sub SendEmailWithoutSignature()

Dim OutApp As Object

Dim OutMail As Object

' 创建Outlook应用程序对象

Set OutApp = CreateObject("Outlook.Application")

' 创建新的邮件对象

Set OutMail = OutApp.CreateItemFromTemplate("C:\Path\to\your\template.oft")

' 禁用自动添加签名

OutMail.BodyFormat = 2 ' olFormatHTML

OutMail.HTMLBody = Replace(OutMail.HTMLBody, "", "")

' 设置收件人、主题等信息

With OutMail

.To = "recipient@example.com"

.Subject = "Test Email"

' 添加其他内容

.HTMLBody = .HTMLBody & "

This is the body of the email.

"

.Send

End With

' 释放对象

Set OutMail = Nothing

Set OutApp = Nothing

End Sub

通过以上代码,我们可以成功地从Excel中使用VBA发送电子邮件,并禁止Outlook自动添加电子邮件签名。这对于需要定期从Excel生成和发送报告的用户来说非常有用。