为什么不使用MailItem.BodyFormat而不参考Outlook库?

当VBA项目包含对Microsoft Outlook对象库的引用时,以下代码正常工作。 如果没有,最后一行产生Invalid procedure call or argument错误。

 Set olApp = CreateObject("Outlook.Application") Set olMail = olApp.CreateItem(0) olMail.BodyFormat = olFormatHTML 'error here :-( 

我不认为我曾经遇到过,只有当我添加一个对该库的引用时,才能在库中提供一个属性或方法。

Excel 2010/2013发生此问题。 我没有在其他版本上testing过。

我认为你的问题很简单,olFormatHTML没有参考没有价值,因为它是一个Outlook枚举的一部分。 尝试使用文字值,而不是:

 olMail.BodyFormat = 2 

或者首先声明一个常量:

 Const olFormatHTML as Long = 2 

这是因为没有参考,常量是不可用的。

指定项目正文的格式。

名称值说明

olFormatHTML 2 HTML格式

olFormatPlain 1普通格式

olFormatRichText 3富文本格式

olFormatUnspecified 0未指定的格式

 olMail.BodyFormat = 2